向Python sys.path添加一个目录,使其';每次我使用Python时都会包括

向Python sys.path添加一个目录,使其';每次我使用Python时都会包括,python,windows,sys.path,Python,Windows,Sys.path,目前,在尝试引用某些库代码时,我在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 librar

目前,在尝试引用某些库代码时,我在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

如果以交互方式执行此操作,最好是安装并配置启动设置以包含该代码。如果您想让它成为从解释器运行的脚本的一部分,同样的事情也适用,因为它可以访问您的命名空间

另一方面,独立脚本应该而不是自动包含它。将来,您或其他一些维护人员会出现,所有代码都应该是显而易见的,并且不依赖于特定的机器设置。最好的做法是为新项目设置一个框架文件,其中包含您需要的所有基本功能。这与经常使用的代码片段一起将解决这个问题


运行脚本的所有代码都将在脚本中,您不必每次都考虑添加这些代码。

要执行此操作,您必须使用sitecustomize.py(或usercustomize.py)文件,在其中进行sys.path修改()


将sitecustomize.py文件创建到python安装的\Lib\site packages目录中,每次启动python解释器时都会导入该文件。

如果这是一个在整个代码中使用的库,则应按此安装。将其正确打包,然后将其安装到
站点包
目录中,或者,如果它特定于某些项目,则使用
virtualenv
并将其安装到相关的virtualenv中。

只需将此路径添加到PYTHONPATH环境变量中即可。要执行此操作,请转到控制面板/System/Advanced/Environment variable,并在“用户变量”部分中,检查您是否已经拥有PYTHONPATH。如果是,则选中它并单击“编辑”,如果不是,则单击“新建”以添加它

PYTHONPATH中的路径应以“;”分隔

  • 你应该使用
    os.path.join
    使您的代码更可靠
  • 您已经在路径中使用了我的库。因此,不要在导入中第二次使用它。 如果你有这样的目录结构 C:\code\my library\lib.py和其中的函数,例如
  • 那么您的结果代码应该是

    import sys 
    sys.path.append(os.path.join('C:/', 'code', 'my-library')
    from lib import main 
    

    在多个环境中使用jupyter时,将路径添加到.bashrc无效。我必须编辑特定内核的kernel.json文件,并将其附加到env部分的PYTHONPATH中


    这只在该内核中起作用,但可能对其他人有帮助。

    将其附加到系统环境变量中的“PATH”或“PYTHONPATH”中(通过控制面板)应该会起作用。此外,在Windows上编写目录名时,应该使用原始字符串而不是多行字符串(因为出现了不幸的反斜杠):
    r'C:\code\my library'
    !我认为这可能是最好的方法。我对Python开发真的很陌生。你能告诉我怎么做吗?是的。彼此彼此。我一直在想你会怎么做@Daniel RosemanThanks太棒了!我没有意识到PYTHONPATH是一个可以编辑的独立环境变量!这正是我所需要的。这对于可以设置环境变量的本地安装非常有用。但是,对于独立的基于网络的“安装”/部署,请使用sitecustomize.py方法(请参阅下面的Cedric Julien的描述)。当我尝试在SPSS statistics 22中运行Python代码并将PYTHONPATH设置为“C:\Program Files\Python27\Lib\site packages”时,spssengine.exe出现未经处理的win32异常修复了该问题。使用addsitedir()、.append()或.insert()进行修改;不要使用=符号。。。否则就不行了!
    import sys 
    sys.path.append(os.path.join('C:/', 'code', 'my-library')
    from lib import main