Python 在站点软件包中安装的版本上导入模块的开发版本
我正在开发一个python模块,该模块目前是封闭源代码的,不能继续使用pip(不是我的选择)。对于这个示例,我将其称为Python 在站点软件包中安装的版本上导入模块的开发版本,python,python-3.x,import,pip,python-importlib,Python,Python 3.x,Import,Pip,Python Importlib,我正在开发一个python模块,该模块目前是封闭源代码的,不能继续使用pip(不是我的选择)。对于这个示例,我将其称为private\u模块。此模块依赖于我正在开发的另一个模块,该模块在pip上可用,我将其称为public\u模块。问题是private_module和public_module的开发版本在我与同事共享的windows服务器目录中。需要访问代码的计算机具有不同的python风格的文件权限。这意味着,pip安装任何东西都非常困难,但同时在其站点软件包目录中可能存在private_mo
private\u模块
。此模块依赖于我正在开发的另一个模块,该模块在pip上可用,我将其称为public\u模块
。问题是private_module
和public_module
的开发版本在我与同事共享的windows服务器目录中。需要访问代码的计算机具有不同的python风格的文件权限。这意味着,pip安装任何东西都非常困难,但同时在其站点软件包目录中可能存在private_module
和public_module
的延迟版本。还假设所有用户都没有编程经验,即使他们有编程经验,如果没有管理员权限,计算机也无法安装带有pip的软件包
目录结构可以这样表示:
- C:\Program Files\Anaconda3\lib\site packages\[过时的公共和私有模块]
- F:\PythonModules\exp\[新的公共和私有模块]
import os
staging = [r"F:\PythonModules\exp"]
for path in staging:
if os.path.isdir(path):
sys.path.append(path)
有没有一种方法可以将新的公共和私有模块加载到站点软件包中的对应模块上?这是一种有点粗糙的解决方法,但在您的情况下应该会起作用-您可以在sys.path的开头添加私有模块,以便在公共pip版本之前读取。大概是这样的:
import sys
sys.path.insert(0,"F:\PythonModules\exp")
这不是VirtualEnvironment应该解决的问题吗?假设在这种情况下这也是不可能的。但是你的问题变成了“如果没有标准的Python环境管理工具,我如何管理Python环境?”:/Worked完美!