gpt4 book ai didi

python - 使用 .pth 文件

转载 作者:IT老高 更新时间:2023-10-28 21:49:37 28 4
gpt4 key购买 nike

我正在尝试在我没有对全局 site-packages 目录的写入权限且不更改环境(PYTHONPATH)。我试图将 .pth 文件放在与我正在执行的脚本相同的目录中,但它似乎被忽略了。例如,我创建了一个文件 extras.pth,其内容如下:

N:\PythonExtras\lib\site-packages

但下面的脚本,放置并运行在同一目录中,会打印 False

import sys
print r"N:\PythonExtras\lib\site-packages" in sys.paths

sys.path 中唯一可以写入的目录是包含脚本的目录。是否有另一个(当前不存在的)目录可以放置 extras.pth 并让它被看到?有没有更好的方法来解决这个问题?

我在 Windows 上使用 python 2.7。我可以在这里找到的所有 .pth 问题都使用系统模块目录。

编辑:我在 %APPDATA%\Python\Python27\site-packages 找到了 Windows 每用户安装目录。我可以在那里放置一个模块,它将被导入,但如果我在那里放置一个 .pth 文件,它就没有效果。这真的不应该工作,还是我做错了什么?

最佳答案

the documentation 中所述, 只有在 site-packages 目录中的 PTH 文件才会被处理。 (更准确地说,如果它们在“站点目录”中,则它们会被处理,但“站点目录”本身是 Python 安装的全局设置,不依赖于当前目录或脚本所在的目录。)

如果包含您的脚本的目录位于 sys.path 上,您可以在该目录中创建一个 sitecustomize.py。这将在 Python 启动时加载。在 sitecustomize.py 中,您可以:

import site
site.addsitedir('/some/dir/you/want/on/the/path')

这不仅会添加该目录,还会将其添加为“站点目录”,从而处理那里的 PTH 文件。如果您想创建自己的个人 site-packages-like-directory,这很方便。

如果您只需要在路径中添加一两个目录,您可以更简单地执行此操作。只需创建一个操作 sys.path 的小型 Python 库,然后从您的脚本中导入该库。比如:

# makepath.py
import sys
sys.path.append('/whatever/dir/you/want')

# script.py
import makepath

编辑:同样,根据 the documentation ,在 %APPDATA%\Python\PythonXY\site-packages (在 Windows 上)中可能存在特定于站点的目录。你可以试试,如果事实上你有写权限(而不仅仅是你的脚本目录)。

关于python - 使用 .pth 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208615/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com