2012-08-07 101 views
3

我用pip安装了两个我需要的库,它们与它们的功能相关,但不能处理它们中的任何一个。问题是,打开包装后,它们具有相同的名称,并在二者的功能将被导入为:导入两个同名的软件包

import the_package 
from the_package import a, b 

更新:我的意思是进口the_package任何以前的方式,不一定都也不按顺序。

因为我通过PIP安装它们,并从requirements file安装,所以我的队友们可以安装他们以同样的方式我想重命名包/模块不是一个选项(如果是,我很欣赏指点如何自动做到这一点)

我想到的一件事是提供一些选项,将软件包安装到具有某种别名/前缀的目录中,因此它们的名称可能不同,但是对于我来说,pip文档并没有太多用处。

在此先感谢您的帮助:d

回答

-1
import the_package 
from the_package import a, b 

然后:

import the_package as package_b 
from the_package import a as a_, b as b_ 

相应地使用它们,这不会与命名空间冲突。

+0

这没有工作:S https://gist.github.com/3289565 – Gerard 2012-08-07 21:29:42

4

在安装

pip install --install-option="--prefix=$PREFIX_PATH" package_name 

您应该添加这和两个包安装到不同的文件夹。然后将它们导入为

import Folder1.mymodule as A 
import Folder2.mymodule as B 

可能还需要通知包的创造者。

+0

对不起,这不适合我。这是我的输出:https://gist.github.com/3289595 – Gerard 2012-08-07 21:42:45

+1

我相信@Pratik只是使用'$ PREFIX_PATH'作为占位符。您需要定义该环境变量或硬编码所需的前缀。 – 2012-08-07 21:52:57

+0

是@ChrisPratt是对的。为每个文件夹位置声明自己的路径变量。你粘贴的要点也表示一个特权问题。使用sudo或在用户家中提供非系统路径。 – 2012-08-08 05:05:05

相关问题