【问题标题】:Dependencies are not installed by pippip 不安装依赖项
【发布时间】:2018-09-27 04:03:22
【问题描述】:

我有一个库,其中包含以下setup.py

from setuptools import setup

from mylib import __version__

requirements = ['paramiko']
tests_require = ['pytest']


def main():
    setup(
        name='mypackage',
        description='A collection of utilities',
        url='http://example.net',
        version=__version__,
        author='Me Me',
        author_email='me@me.net',
        packages=['mylib'],
        zip_safe=False,
        install_requires=requirements,
        tests_require=tests_require,
    )

if __name__ == '__main__':
    main()

我已将此包发布到内部devpi 服务器。每当我尝试安装它时,我都会得到:

» pip install mypackage
Looking in indexes: http://devpi.mine/myuser/dev/+simple/
Collecting mypackage
  Downloading http://devpi.mine/myuser/dev/+f/a8c/c05e3a49de4fe/mypackage-0.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-ee238ja7/mypackage/setup.py", line 3, in <module>
        from mypackage import __version__
      File "/tmp/pip-install-ee238ja7/mypackage/mylib/__init__.py", line 3, in <module>
        from .storage_host import StoraHostType
      File "/tmp/pip-install-ee238ja7/mypackage/mylib/storage_host.py", line 5, in <module>
        from .ssh import SSH
      File "/tmp/pip-install-ee238ja7/mypackage/mylib/ssh.py", line 5, in <module>
        import paramiko
    ModuleNotFoundError: No module named 'paramiko'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-ee238ja7/mypackage/

为什么pip 没有安装install_requires 中列出的要求,在setup.py 中?

【问题讨论】:

  • this 有帮助吗?
  • @MegaIng 谢谢,但问题与此无关。请参阅下面 Sraw 的答案。

标签: python pip setuptools devpi


【解决方案1】:

那是因为你在 setup 执行之前引用了你的包。

Pip 需要先触摸setup(...) 才能完成所有操作。但在此之前,你from mylib import __version__。所以setup 根本不执行。

【讨论】:

  • 确实...我在mylib/__init__.py 中有__version__,读到崩溃setup.py...我在重构后没有注意到这一点,因为在我的旧virtualenv 中paramiko 已经存在安装。擦除 virtualenv 从头开始​​后,错误开始出现。我将把版本移到mylib/version.txt 并从setup.py阅读它
猜你喜欢
  • 2016-08-21
  • 2011-01-20
  • 2013-11-20
  • 2015-04-01
  • 2021-05-29
  • 2023-04-03
  • 2021-10-05
  • 1970-01-01
  • 2020-10-04
相关资源
最近更新 更多