gpt4 book ai didi

python - 嵌套的 .pth 文件或从网络加载额外的站点目录

转载 作者:行者123 更新时间:2023-11-28 18:54:10 24 4
gpt4 key购买 nike

目标是拥有一个通用目录,我可以在其中添加自动添加到 sys.path 的网络包,而无需运行 site.addsitedirsys.path.append 每次我导入所述包时。有办法做到这一点吗?

背景:我有一个小型用户网络,他们都需要访问相同的脚本。每次我想添加一个新包供他们使用时,我都会将路径添加到他们的 PYTHONPATH 环境变量中。用户群开始增长,软件包数量也开始增长。

如果我可以在网络上设置一个 master.pth,当他们启动任何脚本时(不需要所有脚本都需要额外的代码),我将不胜感激。不过,您似乎无法嵌套 .pth 文件,因此只需将指针 .pth 添加到 master.pth 目录就不会了' 似乎有效。

编辑:关于@S.Lott 的评论(评论有点大):例如,wxPython。站点包目录中放置了三个对象:wxversion.py、一个名为 wx-2.8-msw-unicode 的目录和一个 .pth 文件。 .pth 文件指向该目录,其中包含所有可导入的包(wx、wxPython 等)。我目前有其他三个以类似方式构建的包,其中一个包有几个基本模块。我需要将所有可导入模块移动到同一目录中以获得所需的结果。

但是,如果 .pth 文件可以“嵌套”,我可以将所有这些目录添加到 master.pth,保持一个相对干净的文件夹。我希望这是有道理的,感谢您的帮助!

最佳答案

你有几个选择:

  • 修改您的 site.py 文件——查找 PREFIXES 列表并将您的网络路径添加到其中:
  • 在每台机器的 site-packages 文件夹中有一个自定义 .pth 文件,其中包含以下行:

    import sys; sys.path.append('/network/path/to/modules_and_packages')

使用 site.py 的缺点是,当您升级到不同的 python 时,您必须找到并调整所有 all 上的 site.py机器。使用自定义 .pth 文件只需将其复制到新的“站点包”文件夹即可。

这两种解决方案都允许您像普通的 site-packages 文件夹一样设置网络位置。例如:

m:\python_site_packages\   # network drive and folder
|
|- dbf.py # for accessing dBase III and VFP .dbf files
|
|- web\
|- __init__.py
|- application.py
|- (etc)

提醒一下——如果服务器不可用,所有网络包也将不可用。

关于python - 嵌套的 .pth 文件或从网络加载额外的站点目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6600938/

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