标签: pythonpath

如何在Windows中添加到pythonpath?

我有一个托管所有Django应用程序的目录(C:\My_Projects).我想将此目录添加到我的PYTHONPATH所以我可以直接调用这些应用程序.

我尝试从Windows GUI()添加C:\My_Projects\;到我的Path变量My Computer > Properties > Advanced System Settings > Environment Variables.但它仍然没有读取coltrane模块并生成此错误:

错误:没有名为coltrane的模块

python windows environment-variables pythonpath

347
推荐指数
17
解决办法
129万
查看次数

如何使用python找出我的python路径?

如何PYTHONPATH从Python脚本(或交互式shell)中找出系统变量中列出的目录?

python python-module pythonpath

330
推荐指数
5
解决办法
52万
查看次数

永久添加目录到PYTHONPATH?

每当我使用时sys.path.append,都会添加新目录.但是,一旦我关闭python,列表将恢复到之前的(默认?)值.如何永久添加目录PYTHONPATH

python windows save sys pythonpath

293
推荐指数
14
解决办法
52万
查看次数

如何正确确定当前脚本目录?

我想看看在python中确定当前脚本目录的最佳方法是什么?

我发现,由于调用python代码的方法很多,很难找到一个好的解决方案.

这是一些问题:

  • __file__如果脚本执行时未定义exec,execfile
  • __module__ 仅在模块中定义

用例:

  • ./myfile.py
  • python myfile.py
  • ./somedir/myfile.py
  • python somedir/myfile.py
  • execfile('myfile.py') (来自另一个脚本,可以位于另一个目录中,并且可以有另一个当前目录.

我知道没有完美的解决方案,但我正在寻找解决大多数情况的最佳方法.

最常用的方法是os.path.dirname(os.path.abspath(__file__)),如果你从另一个脚本执行脚本,这实际上不起作用exec().

警告

任何使用当前目录的解决方案都将失败,根据调用脚本的方式或者可以在运行的脚本中更改它,可能会有所不同.

python pythonpath dirname

229
推荐指数
8
解决办法
10万
查看次数

django import error - 没有名为core.management的模块

好的,我看到很多这些错误.我已经尝试过我所知道的所有事情并且尚未弄清楚这一点.

我正在开发运行python 2.5和Django 1.3的开发服务器.在解压缩tar.gz下载后,使用python setup.py install安装了Django 1.3.

一切运作良好,我很少需要运行,manage.py但我正在尝试使用新的静态文件应用程序,并遇到问题.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management
Run Code Online (Sandbox Code Playgroud)

好的,我有PATH问题.

Django安装我仔细检查我的site-packages目录.

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages
Run Code Online (Sandbox Code Playgroud)

好吧,让我们看看我有什么,echo $ PYTHON_PATH是空的,所以我设置它

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django
Run Code Online (Sandbox Code Playgroud)

仍然没有运气.让我们检查一下sys.path的含义

>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']
Run Code Online (Sandbox Code Playgroud)

路径在那里,我甚至用内容创建了/usr/lib/python2.5/site-packages/django.pth

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/
Run Code Online (Sandbox Code Playgroud)

有人知道这里发生了什么吗?

我在路径中找到了一个符号链接,但没有出现新的错误.

python manage.py …
Run Code Online (Sandbox Code Playgroud)

python django python-import pythonpath

180
推荐指数
9
解决办法
27万
查看次数

PyLint"无法导入"错误 - 如何设置PYTHONPATH?

我正在Windows上的Wing IDE中运行PyLint.我的项目中有一个子目录(包),在包中我从顶层导入一个模块,即.

__init__.py
myapp.py
one.py
subdir\
    __init__.py
    two.py
Run Code Online (Sandbox Code Playgroud)

two.py我内部import one,这在运行时工作正常,因为顶级目录(从中myapp.py运行)位于Python路径中.但是,当我在two.py上运行PyLint时,它给出了一个错误:

F0401: Unable to import 'one'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python pylint virtualenv pythonpath

133
推荐指数
9
解决办法
15万
查看次数

将目录添加到sys.path/PYTHONPATH

我正在尝试从特定目录导入模块.

问题是,如果我使用sys.path.append(mod_directory)附加路径然后打开python解释器,该目录mod_directory将添加到列表sys.path的末尾.如果我PYTHONPATH在打开python解释器之前导出变量,则该目录将添加到列表的开头.在后一种情况下,我可以导入模块,但在前者,我不能.

有人可以解释为什么会这样,并给我一个解决方案mod_directory, python脚本中添加到开头?

python mechanize python-import pythonpath

115
推荐指数
3
解决办法
22万
查看次数

Python - 在命令行模块运行期间添加PYTHONPATH

我想跑:

python somescript.py somecommand
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我需要PYTHONPATH包含一个特定的目录.我不能只将它添加到我的环境变量中,因为我想要添加的目录会根据我正在运行的项目而更改.有没有办法PYTHONPATH在运行脚本时改变?注意:我甚至没有PYTHONPATH变量,因此在运行此脚本期间,我不需要担心附加到它而是覆盖它.

python pythonpath

81
推荐指数
3
解决办法
12万
查看次数

为什么使用sys.path.append(path)而不是sys.path.insert(1,path)?

编辑:基于Ulf Rompe的注释,重要的是你使用"1"代替"0",否则你将破坏sys.path.

我已经做了很长一段时间的python(超过一年),我总是很困惑,为什么人们建议你使用sys.path.append()而不是sys.path.insert().让我来证明一下.

假设我正在开发一个名为PyWorkbooks的模块(安装在我的计算机上),但我同时处理一个包含PyWorkbooks的不同模块(比方说PyJob).当我正在使用PyJob时,我发现PyWorkbooks中的错误正在纠正,所以我想导入一个开发版本.

有两种方法可以同时工作(例如,我可以将PyWorkbooks项目放在PyJob中),但有时我仍然需要使用路径.但是,我不能简单地对sys.path.append()PyWorkbooks所在的文件夹执行操作.为什么?因为python会首先找到我安装的PyWorkbooks!

这就是你必须做一个sys.path.insert(1,path_to_dev_pyworkbooks)的原因

综上所述:

sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
Run Code Online (Sandbox Code Playgroud)

要么:

sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
Run Code Online (Sandbox Code Playgroud)

这对我来说已经引起了一些困扰,如果我们(作为一个社区)开始推荐sys.path.insert(1, path),我真的很喜欢它,好像你是手动插入一条路径我认为可以说这是你想要的路径用!

或者我有什么不对劲?这个问题有时会困扰我,我希望它在公开场合!

python path python-import pythonpath

81
推荐指数
3
解决办法
11万
查看次数

PYTHONPATH与sys.path

另一位开发人员和我不同意是否应该使用PYTHONPATH或sys.path来允许Python在用户(例如,开发)目录中查找Python包.

我们有一个具有典型目录结构的Python项目:

Project
    setup.py
    package
        __init__.py
        lib.py
        script.py
Run Code Online (Sandbox Code Playgroud)

在script.py中,我们需要这样做import package.lib.当软件包安装在site-packages中时,script.py可以找到package.lib.

但是,当从用户目录工作时,还需要做其他事情.我的解决方案是将我的PYTHONPATH设置为包含"〜/ Project".另一位开发人员希望将这行代码放在script.py的开头:

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Run Code Online (Sandbox Code Playgroud)

这样Python就可以找到本地副本了package.lib.

我认为这是一个坏主意,因为这行只对开发人员或从本地副本运行的人有用,但我不能说明为什么这是一个坏主意.

我们应该使用PYTOHNPATH,sys.path,还是要么?

python python-import pythonpath sys.path

79
推荐指数
6
解决办法
8万
查看次数