【发布时间】:2019-03-26 09:24:21
【问题描述】:
我未能成功创建 Python 包分发。我已按照https://packaging.python.org/tutorials/packaging-projects/ 中的说明进行操作,这就是发生的情况。例如如果我根据需要创建必要的文件和文件夹
first/
first/
__init__.py
setup.py
LICENSE
README.md
myfirst.py
我在 setup.py 中将包名设为“first”
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="tvg11",
version="0.0.1",
author="Ganesh",
author_email="tvganesh.85@gmail.com",
description="A small example package",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/pypa/sampleproject",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
然后我运行命令
python setup.py sdist bdist_wheel
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*
创建dist/、build/ 和first.egg-info。
现在我发现如果我在同一个目录中并做一个
pip install --index-url https://test.pypi.org/simple/ first
然后我发现这会用编译后的代码创建一个新文件夹 pycache 并且我可以做到import first
first/
first/
__pycache__ # new!
build/
dist/
first.egg.info
__init__.py
setup.py
LICENSE
README.md
myfirst.py
但是,如果我在根文件夹 'first/first' 以外的任何其他文件夹中,我会执行
pip install --index-url https://test.pypi.org/simple/ first
我得到一个“成功安装”,但是当我调用 python 并执行 import first 时,我得到 ModuleNotFoundError"No module 'first'"。
请让我知道我做错了什么。说明很简单。
【问题讨论】:
-
请出示您的完整设置脚本。看起来
first包没有捆绑。另外,运行pip show -f first并验证所有文件都已列出。 -
@hoefling 'pip show -f first' 什么都不做。因为我之前已经完成了“pip install tiwne”,所以当我检查“pip -f show twine”时,我得到了所有文件的列表 - .py、.pyc、LICENSE 等。是的,看起来我在 ' 中缺少一些步骤捆绑'包
标签: python pip setuptools pypi