目前,在尝试引用某些库代码时,我在python文件的顶部执行此操作:
import sys
sys.path.append('''C:\code\my-library''')
from my-library import my-library
然后,只要会话处于活动状态,my-library
将成为sys.path的一部分。如果我开始新文件,我必须记得再次包含sys.path.append
。
我觉得必须有更好的方法来做到这一点。如何在我的Windows机器上为每个python脚本提供my-library
,而不必每次都使用sys.path.append
?
答案 0 :(得分:14)
只需将此路径添加到PYTHONPATH环境变量中即可。要执行此操作,请转到“控制面板/系统/高级/环境”变量,然后在“用户变量”部分中,检查是否已有PYTHONPATH。如果是,请选择它并单击“编辑”,如果没有,请单击“新建”以添加它。
PYTHONPATH中的路径应以“;”分隔。
答案 1 :(得分:4)
如果这是您在整个代码中使用的库,则应该安装它。正确打包,并将其安装在site-packages
目录中 - 或者,如果特定于某些项目,请使用virtualenv
并在相关的virtualenvs中安装它。
答案 2 :(得分:3)
要做这样的事情,你必须使用sitecustomize.py(或usercustomize.py)文件来进行sys.path修改(source python docs)。
将sitecustomize.py文件创建到python安装的\ Lib \ site-packages目录中,每次启动python解释器时都会导入该文件。
答案 3 :(得分:0)
如果您以交互方式执行此操作,最好的办法是安装ipython并配置启动设置以包含该代码。如果您打算将它作为从解释器运行的脚本的一部分,则同样适用,因为它可以访问您的命名空间。
另一方面,独立脚本不会自动包含该脚本。将来,您或其他维护人员会出现,并且所有代码都应该是显而易见的,而不依赖于特定的机器设置。最好的办法是为新项目设置一个框架文件,其中包含您需要的所有基本功能。这与经常使用的片段一起处理问题。
运行脚本的所有代码都将在脚本中,您不必每次都考虑添加该代码。
答案 4 :(得分:0)
os.path.join
使您的代码更可靠。 print("Hello, world")
那么您生成的代码应该是
import sys
sys.path.append(os.path.join('C:/', 'code', 'my-library')
from lib import main
答案 5 :(得分:0)
在多个环境中使用 jupyter,添加到 .bashrc 的路径不起作用。我必须编辑该特定内核的 kernel.json 文件,并将其附加到 env 部分的 PYTHONPATH 中。
这只适用于那个内核,但也许这可以帮助其他人。