通过site-packages中安装的版本导入模块的开发版本

问题描述 投票:1回答:1

我正在开发一个目前是封闭源代码的python模块,不能继续使用pip(不是我选择的)这个例子我将它称为private_module。这个模块依赖于我正在开发的另一个模块,我可以将其称为public_module。这是问题private_modulepublic_module的开发版本在我与同事共享的Windows服务器上的目录中。需要访问代码的计算机具有变量文件权限,因为它们的python含义可变,很难安装任何东西,但同时在他们的site-packages目录中可能会有private_modulepublic_module的延迟版本。还假设所有用户都没有编程经验,即使他们这样做,计算机也无法在没有管理员权限的情况下安装带有pip的软件包。

目录结构可以表示如下:

  • C:\ Program Files \ Anaconda3 \ lib \ site-packages \ [过时的公共和私有模块]
  • F:\ PythonModules \ exp \ [新的公共和私有模块]

我已经尝试了以下内容,如果模块尚未安装到pip中,但是在pip中安装的模块看起来更有利于另一个有意义,那么它可以正常工作。

import os
staging = [r"F:\PythonModules\exp"]

for path in staging:
    if os.path.isdir(path):
        sys.path.append(path)

有没有办法可以将新的公共和私有模块加载到可能位于站点包中的对应模块上?

python python-3.x import pip python-importlib
1个回答
2
投票

这有点像一个hacky变通方法,但它应该适用于您的情况 - 您可以在sys.path的开头添加私有模块,因此它将在public pip版本之前读取。像这样的东西:

import sys
sys.path.insert(0,"F:\PythonModules\exp")
© www.soinside.com 2019 - 2024. All rights reserved.