我正在尝试将一个文件Python脚本转换为带有CLI脚本的软件包。我正在遵循Packaging Python Projects指南。
我想使用venv
来尝试本地构建的sdist
,但是在虚拟环境中,我似乎从pip install
中得到了错误。
这就是我要尝试的:
$ python3 setup.py sdist
$ cd ~/venv
$ python3 -m venv .
$ source bin/activate
$ pip3 install ~/my_module/dist/my_module_0.1.tar.gz
Processing ~/my_module/dist/my_module-0.1.tar.gz
Collecting PIL (from my_module==0.1)
Could not find a version that satisfies the requirement PIL (from my_module==0.1) (from versions: )
No matching distribution found for PIL (from my_module==0.1)
我的包裹结构(以防万一):
├── my_module
│ ├── app.py
│ ├── cli.py
│ ├── __init__.py
│ └── my_module.py
└── setup.py
注意install_requires
。
import setuptools
setuptools.setup(
name='my_module',
# ...
packages=setuptools.find_packages(),
entry_points={
'console_scripts': [
'my-cli=my_module.cli:main',
'my-app=my_module.app:main'
],
},
install_requires=[
'PIL',
'imagehash',
'exifread'
],
python_requires='>=3.6'
摘录以显示依赖性...
import os
import sys
import time
import shutil
import json
import pickle
from collections import defaultdict
from multiprocessing import Pool, TimeoutError, cpu_count
from PIL import Image
import imagehash
import exifread
# ...
无论我在setup.py install_requires
列表中输入什么内容,virtualenv
pip3
似乎都找不到。我的印象是应该去在虚拟环境中安装这些要求。
也许我在这里遗漏了一些明显的东西。我的软件包设置或测试方法有问题吗?
答案 0 :(得分:0)
在评论中由@Sraw回答。
PIL
是一个错字。它应该是Pillow
。
我曾经认为可能是这样,所以我尝试放入我认为永远不会失败的内容,例如os
,但这也失败了,因为它不是托管在存储库中的,因为它是随Python分发的核心软件包本身。
希望这会帮助将来一些迷失的灵魂,他们忘记了您import PIL
但pip install Pillow
。