在pip3中安装python包的依赖项安装xxx

时间:2015-07-10 09:49:11

标签: python pip

有人知道pip3安装是如何工作的吗? ,执行步骤的顺序是什么?是否在将软件包内容复制到软件包之前安装了依赖项?

我创建了python包并将其放在Pypi服务器上。它有很多依赖关系,其中一个是netFilterQueue。因为我的项目使用的是Python3.4 和netfilterQueue适用于Python2.7,我编写了我的代码,以便在setup.py中安装它。它基本上改变了netfilterqueue的准备和修补版本的路径,并尝试运行其setup.py。 所以nfq / NetfilterQueue-0.3.1-P3.3下的东西就是那个,并且包含在包中。 具体来说,它看起来像这样(添加了一些打印命令来检查它有什么问题):

parent_dir = os.path.dirname(os.path.abspath(__file__))
nfq_dir = os.path.join(parent_dir, 'nfq', 'NetfilterQueue-0.3.1-P3.3')
for f in listdir(parent_dir):
    print("package item:", f)
try:
    if hasattr(sys, 'real_prefix'):
          python = 'python'       # virtualenv install
    else:
          python = 'python3.4'    # normal install
    os.chdir(nfq_dir)
    subprocess.check_call([python, 'setup.py', 'install'])
    os.chdir(parent_dir)

当我手动从Pypi下载软件包并解压缩时,我尝试使用sudo python3.4 setup.py install安装它, 它工作正常。 问题是当我使用sudo pip3安装Mypackage时。

最终出现错误消息(上述执行代码的结果):

error: [Errno 2] No such file or directory: '/tmp/pip_build_root/Mypackage'

NetfilterQueue目录:

/tmp/pip_build_root/Mypackage/nfq/NetfilterQueue-0.3.1-P3.3

我认为parent_dir = os.path.dirname(os.path.abspath( file )) 是实际运行setup.py的实际位置。 但也许我错了。

任何人都可以对它有所帮助并帮助解决它吗?

0 个答案:

没有答案