为什么<< export PYTHONPATH = $ PYTHONPATH>>将当前工作目录放在sys.path上?

时间:2012-06-01 17:29:45

标签: python

将该行放在.bashrc(Mac上的.profile)中,工作目录位于路径上。把它留下来,它不是。

export PYTHONPATH=$PYTHONPATH

我注意到有线的炮弹在他们的环境输出中有一个PYTHONPATH =线,那些没有穿上它们,所以也许这很重要。如果PYTHONPATH有一些有效的目录但是以':'开头,Python还会添加当前的工作目录。字符。 (简单地将PYTHONPATH设置为某个有效目录会破坏工作目录包含。)

为什么会这样? 确保当前工作目录在sys.path上的最佳做法是什么?

2 个答案:

答案 0 :(得分:2)

如果要确保它,请将.显式添加到pythonpath:

export PYTHONPATH=.:$OTHER_DIRS:$PYTHONPATH

如果您还希望sys.path中的当前工作目录设置为PYTHONPATH,那么您可以尝试通过插入某些内容在sitecustomize.py or usercustomize.py中设置它像:

sys.path.append(os.getcwd())

附加说明:

自引入per user site-packages以来,最好将用户包放在那里(您可以使用site.USER_SITE获取文件夹名称)。 pip还可以使用--user选项轻松安装包thera,所以我发现至少对我来说,很少需要使用PYTHONPATH

答案 1 :(得分:1)

根据文档,(这应该清除你的怀疑)

  

PYTHONPATH是一个环境。变量增加默认搜索   模块文件的路径。格式与shell的PATH相同:   由os.pathsep分隔的一个或多个目录路径名(例如冒号   在Unix上或Windows上的分号)。不存在的目录是   默默地忽略了。

     

除了普通目录,个别PYTHONPATH条目也可以   请参阅包含纯Python模块的zipfiles(无论是源代码还是   编译形式)。无法从zip文件导入扩展模块。

     

默认搜索路径是依赖于安装的,但通常是   以prefix / lib / pythonversion开头(参见上面的PYTHONHOME)。它是   总是附加到PYTHONPATH。

     

将在前面的搜索路径中插入另一个目录   如上所述在接口选项下的PYTHONPATH。搜索   path可以在Python程序中作为变量进行操作   sys.path中。