首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >枕头打包: install_requires ` PyPI `

枕头打包: install_requires ` PyPI `
EN

Stack Overflow用户
提问于 2018-02-07 01:59:43
回答 2查看 254关注 0票数 1

在上传之前,我在包目录中使用pip3 install -e .测试了我的PyPI包。

它依赖于pillow (在代码中导入PIL )。

当我用已经安装的枕头进行测试时,它工作了。

但是,我卸载了pillow,然后用pip3 install -e .重新安装了我的软件包,它不起作用:

代码语言:javascript
复制
Obtaining file:///Users/hongbook/dev/identicon
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/Users/hongbook/dev/identicon/setup.py", line 4, in <module>
        import Identicon
      File "/Users/hongbook/dev/identicon/Identicon/__init__.py", line 2, in <module>
        from .Identicon import render
      File "/Users/hongbook/dev/identicon/Identicon/Identicon.py", line 5, in <module>
        from PIL import Image, ImageDraw
    ModuleNotFoundError: No module named 'PIL'

我预计在安装时,pillow应该已经安装好了,因为我在setup.py(也是在requirements.txt中)中写了install_requires的值:

代码语言:javascript
复制
# setup.py
from setuptools import setup, find_packages

...

setup(
    name='Identicon',
    version=Identicon.__version__,
    ...
    install_requires=[
        'pillow',  
    ],
)

# requirements.txt
pillow

如何正确地将项目依赖于pillow

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-07 02:11:06

我认为你的问题源于这个:

代码语言:javascript
复制
version=Identicon.__version__,

为此,您需要导入Identicon,这是您导入PIL的包。所以,你的setup.py坏了。它要求已经安装了依赖项才能执行,但是setup.py作业首先要安装这些依赖项。

这是包装中常见的“鸡和蛋”的情况。解决方案是使用不同的方法解析包中的版本号,或者将版本号存储在不会触发依赖项导入的地方。

票数 2
EN

Stack Overflow用户

发布于 2018-02-07 05:06:05

您可以使用imp导入版本,而无需导入整个包。看看我如何在SQLObject中做到这一点

代码语言:javascript
复制
from imp import load_source
from os.path import abspath, dirname, join

versionpath = join(abspath(dirname(__file__)), "sqlobject", "__version__.py")
sqlobject_version = load_source("sqlobject_version", versionpath)

setup(name="SQLObject",
      version=sqlobject_version.version,
      …
     )
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48649198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档