Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在站点软件包中安装的版本上导入模块的开发版本_Python_Python 3.x_Import_Pip_Python Importlib - Fatal编程技术网

Python 在站点软件包中安装的版本上导入模块的开发版本

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

我正在开发一个python模块,该模块目前是封闭源代码的,不能继续使用pip(不是我的选择)。对于这个示例,我将其称为
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\[新的公共和私有模块]

我已经尝试了下面的方法,如果模块没有安装到pip中,那么它可以完美地工作,但是安装在pip中的模块似乎比其他模块更容易加载,这是有道理的

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完美!