[英]Permanently adding a file path to sys.path in Python
我有一个名为example_file.py
的文件,我想从其他各种文件中使用它,所以我决定将example_file.py
添加到sys.path
并将此文件导入另一个文件以使用该文件。 为此,我在 IPython 中运行了以下命令。
import sys
sys.path
sys.path.append('/path/to/the/example_file.py')
print(sys.path)
我可以看到刚刚添加的路径,当我尝试从另一个目录路径导入此文件时,如下所示:
import example_file
它工作得很好,但是一旦我从 IPython 出来,再次输入它并检查sys.path
,我看到我添加的路径不存在,那么我如何在 sys.path 中永久添加路径Python?
这种方式对我有用:
添加您喜欢的路径:
export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add
检查:您可以运行 'export' cmd 并检查输出,或者您可以使用此 cmd 进行检查:
python -c "import sys; print(sys.path)"
在以下文件中的一个 Windows 发行版中: <python_root_installation_directory>/python38._pth
有以下几行:
python38.zip
.
./lib
./lib/site-packages
# Uncomment to run site.main() automatically
#import site
因此,有了这个内容,有以下收益:
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
>>> import sys
>>> sys.path
['C:\\Program Files\\Applications\\python_3_8_2\\python38.zip', 'C:\\Program Files\\Applications\\python_3_8_2', 'C:\\Program Files\\Applications\\python_3_8_2\\./lib', 'C:\\Program Files\\Applications\\python_3_8_2\\./lib/site-packages']
所以在将此行添加到文件中后: ./lib/site-packages/win32ctypes
它存在于路径中:
Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
>>> import sys
>>> sys.path
['C:\\Program Files\\Applications\\python_3_8_2\\python38.zip', 'C:\\Program Files\\Applications\\python_3_8_2', 'C:\\Program Files\\Applications\\python_3_8_2\\./lib', 'C:\\Program Files\\Applications\\python_3_8_2\\./lib/site-packages', 'C:\\Program Files\\Applications\\python_3_8_2\\./lib/site-packages/win32ctypes']
这样,您不需要在系统上存在PYTHONPATH
变量,您仍然可以拥有该功能。 缺点是这是特定于安装的,因此如果您的系统上有 3 个不同的发行版,这只会影响所选的安装,而PYTHONPATH
将同时影响所有这些。
解决此问题的另一种方法是将文件安装为单个模块。
创建如下安装程序文件(名为 pysetup.py):
import setuptools
module_name = input("Enter module name: ")
setuptools.setup(
name=module_name,
py_modules=[module_name],
)
然后,您可以使用python pysetup.py install
安装此安装程序,然后在提示时输入pysetup
。
现在要安装任何文件,您可以键入python -m pysetup install
然后输入文件名。 您还可以将install
替换为develop
以在开发模式下安装并继续编辑文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.