我在Linux OS下将python3与emacs(编辑器和shell)一起使用。为什么cwd不在sys.path中?在所有课程中,我们该怎么说呢!我谢谢你。
您做不是想要将cwd()
添加到sys.path
。 总是添加cwd()
将是一个[[糟糕的主意,因为您无法再控制哪些文件可用于导入。
正在执行的脚本目录
。例如当您运行时:python.exe path/to/script.py
然后文档中的Interface options:path/to
自动添加到sys.path
。仅当从当前目录运行脚本时,才会将
''
添加到路径的开头,这意味着将在当前工作目录中搜索导入。例如。当您运行python.exe localfile.py
时,Python确实会添加当前工作目录,假设您在导入时不会更改当前工作目录。请参见
命令行和环境
如果脚本名称直接指向Python文件,则包含该文件的目录将添加到sys.path
的开头,并且该文件将作为__main__
模块执行。
在程序启动时初始化,此列表的第一项sys.path
是包含用于调用Python解释器的脚本的目录。如果脚本目录不可用(例如,以交互方式调用解释器或从标准输入中读取脚本),则path[0]
为空字符串,它会引导Python首先搜索当前目录中的模块。注意,由于path[0]
的结果,在插入条目之前插入了脚本目录。您总是可以将当前工作目录显式添加到
PYTHONPATH
:
sys.path
请注意,该工作目录中任何名称与您在代码中已使用的模块匹配的python文件或软件包都将屏蔽该模块,很容易导致损坏。
import sys
if sys.path[0] != '':
sys.path.insert(0, '')
sys.path
环境变量。这会将位置添加到默认模块搜索路径。python
说,从命令行运行脚本时,import
中的第一项将是脚本的路径。文档说PYTHONPATH
是“从环境变量PYTHONPATH初始化,再加上与安装有关的默认值。”例如,如果PYTHONPATH
为空(PowerShell:docs),仅添加依赖于安装的默认值。但是