在我的主目录中有一个系统python安装和一个个人python安装。我的个人python在我的$PATH
中领先,我通常运行它。但是系统python安装有一些模块,我想在我的个人python安装中使用。在
因此,基本上,我想将系统python安装的sys.path
附加到个人python安装的sys.path
。在
我阅读了docs和sourceofsite模块,发现我可以使用sitecustomize
或{sys.path
附加到个人python的sys.path
上。在
站点模块中的gensitepackages
函数似乎在计算要添加到sys.path
的路径,但它使用的是PREFIXES
全局变量,而不是将其作为参数,因此据我所知,我不能使用它。向PREFIXES
添加系统python的前缀也不是一个选项,因为在加载自定义模块时,PREFIXES
已经用于构建路径。在
有什么办法吗?在
另外,我不确定是否应该在askubuntu/unix&linux上问这个问题。评论?在
编辑:我想我不清楚这一部分。我希望系统python的路径被附加到中,这样当我尝试使用在我的个人python中不存在的模块时,它将自动回退到系统python的模块。在
python将检查是否存在
$PYTHONPATH
环境变量集。使用它作为其他模块的路径。在使用
export PYTHONPATH="path:locations"
设置PYTHONPATH environment variable,或者在个人Python安装的site packages目录中,添加一个或多个path configuration files(.pth文件),这些文件指向要从系统Python安装中添加的目录。在
更新:一般来说,混合来自不同Python实例的模块不是一个好主意。例如,用于构建两个Python的配置参数可能存在差异,这些参数可能会在为现有系统Python构建的C扩展模块中产生不兼容,但这些扩展模块与您的个人Python一起使用。但是,如果您真的想沿着这条路径走,您可以使用.pth文件来操作路径,或者修改} 使用系统Python创建一个私有虚拟环境,然后替换环境中的解释器;例如,请参阅
site
模块。或者,一种更直接、更易于管理的方法是使用^{Using Virtualenv without bin/python
一节。在相关问题 更多 >
编程相关推荐