Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PYTHONPATH系统路径差异_Python - Fatal编程技术网

PYTHONPATH系统路径差异

PYTHONPATH系统路径差异,python,Python,将目录添加到我的PYTHONPATH 目录是/usr/local/lib/python2.7/dist-packages 当我跑的时候 PYTHONPATH=/usr/local/lib/python2.7/dist-packages python -c 'import sys; print sys.path' 我在结果中找不到它。 在尝试时,我注意到以下几点: 当/usr/local/lib/python2.7作为前缀存在时,目录将从sys.path中消失,例如,以下操作正常: PYTHON

将目录添加到我的
PYTHONPATH
目录是
/usr/local/lib/python2.7/dist-packages

当我跑的时候

PYTHONPATH=/usr/local/lib/python2.7/dist-packages python -c 'import sys; print sys.path'
我在结果中找不到它。 在尝试时,我注意到以下几点: 当
/usr/local/lib/python2.7
作为前缀存在时,目录将从
sys.path
中消失,例如,以下操作正常:

PYTHONPATH=/usr/local/lib python -c 'import sys; print sys.path'

我没有在其他任何地方设置PYTHONPATH,我用sudo检查了运行它。

出现路径的原因有很多。确保您没有击中以下任何一个:

  • 路径必须存在,不存在的路径将被忽略。从:

    不存在的目录将被静默忽略

  • 删除重复项(保留第一个条目);路径被设置为绝对路径(相对于当前工作目录),并在重要的平台上不区分大小写进行比较

    因此,如果在
    sys.path
    中有一个相对路径,该路径与绝对路径相同,则只保留第一个条目

  • 规范化和清理后,尝试导入
    sitecustomize
    usercustomize
    模块。它们也可以操纵
    sys.path

清洁后,您可以通过将
站点
模块作为命令行工具运行,仔细查看您的
系统路径
,以及是否有要导入的
用户自定义
模块:

python -m site

它将以每个条目一行的可读格式打印出您的
sys.path

您确定路径中没有
/usr/local/lib/python2.7/dist包吗?如果它已经列出,则不会添加到前面。它不是。只是一个接一个地检查了一下如果你运行这个你会得到什么
PYTHONPATH=/usr/local/lib/python2.7/dist-packages python-c'import sys;在sys.path中打印“/usr/local/lib/python2.7/dist包”
False。如果我拼错了python:PYTHONPATH=/usr/local/lib/pythn2.7/dist-packages python-c'import sys;在sys.path'
true中打印“/usr/local/lib/pythn2.7/dist包”true我认为符号链接也被清除(例如,条目上的Python调用
normpath
)-S标志禁用站点。使用-S,我可以导入和使用包。如果没有它,即启用站点,导入将失败。
/usr/local/lib/python2.7/dist packages
中的包称为
z3
。这是可行的:
PYTHONPATH=/usr/local/lib/python2.7/dist-packages python-S-c'import z3'
,这会引发导入错误
PYTHONPATH=/usr/local/lib/python2.7/dist-packages python-S-c'导入站点;导入z3'
@Chris:因此,
sitecustomize
usercustomize
正在执行此操作,或者
site
模块已经过定制(在Debian和Ubuntu系统上就是这样的IIRC,请参阅)结果是它被删除了。这是我在顶部粘贴代码的站点模块,然后是
import z3
和delta调试it@Chris:该文件的Debian/Ubuntu版本肯定不同于Python通常发布的版本。