为什么<&书信电报;导出PYTHONPATH=$PYTHONPATH>&燃气轮机;是否将当前工作目录放在sys.path上?

为什么<&书信电报;导出PYTHONPATH=$PYTHONPATH>&燃气轮机;是否将当前工作目录放在sys.path上?,python,Python,将该行放入.bashrc(.profile on Mac),工作目录位于路径上。别说了,它不是 export PYTHONPATH=$PYTHONPATH 我注意到带有行的shell在其env输出中有一个PYTHONPATH=行,而不带行的shell则没有,所以这可能很重要。如果PYTHONPATH有一些有效的目录,但以“:”字符开头,那么Python还会添加当前工作目录。(只需将PYTHONPATH设置为某个有效目录,即可中断工作目录的包含。) 为什么会这样? 确保当前工作目录位于sys.p

将该行放入.bashrc(.profile on Mac),工作目录位于路径上。别说了,它不是

export PYTHONPATH=$PYTHONPATH
我注意到带有行的shell在其env输出中有一个PYTHONPATH=行,而不带行的shell则没有,所以这可能很重要。如果PYTHONPATH有一些有效的目录,但以“:”字符开头,那么Python还会添加当前工作目录。(只需将PYTHONPATH设置为某个有效目录,即可中断工作目录的包含。)

为什么会这样? 确保当前工作目录位于sys.path上的最佳实践是什么?

根据文档,(这将消除您的疑虑)

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

除了普通目录外,还可以使用单独的PYTHONPATH条目 请参阅包含纯Python模块的zipfiles(在源代码或 编译形式)。无法从ZipFile导入扩展模块

默认搜索路径取决于安装,但通常是 以前缀/lib/pythonversion开头(参见上面的PYTHONHOME)。它是 总是附加在PYTHONPATH后面

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


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

export PYTHONPATH=.:$OTHER_DIRS:$PYTHONPATH
如果您还希望在
sys.path
中设置当前工作目录,并将
PYTHONPATH
设置为其他内容,则可以尝试通过插入以下内容在中设置它:

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

补充说明:

自从引入以来,最好将您的用户包放在那里(您可以通过
site.user\u site
获取文件夹名称)。pip还可以使用
--user
选项轻松安装thera软件包,因此我发现,至少对我来说,很少有必要使用
PYTHONPATH