使用 pip 安装 python 项目时缺少模块
Modules missing when installing python project using pip
我正在部署我的第一个 python 项目,但遇到安装问题。我遵循了 https://packaging.python.org/guides/distributing-packages-using-setuptools/#uploading-your-project-to-pypi 中概述的做法。我的项目是用一个顶级可执行脚本 bin/gsat
组织的,该脚本调用导入其他模块,如下所示:
import gsat.input_validation as input_validation
模块在 src/gsat/
中,遵循 https://github.com/pypa/sampleproject
示例项目中的安排
如果我从项目源本地安装,使用开发模式:
pip install -e .
...那么我的安装没有问题,软件可以正常工作。
但是如果我从 PyPI 安装它:
pip install "gsat"
... 那么它不会 运行 因为导入语句找不到模块。错误:
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/gsat", line 10, in <module>
import gsat.input_validation as input_validation
ModuleNotFoundError: No module named 'gsat'
完整项目位于 https://github.com/MikeAxtell/gsat ,提交 c680172。该项目也在 PyPI 上作为 "gsat"。分发文件制作如下:
python3 setup.py sdist bdist_wheel
... 有趣的 setup.py 文件在下面。我确定这是一些菜鸟问题;我是 python 打包和 python 编程的新手,所以在此先感谢您的帮助!
setup.py:
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="gsat",
version="0.1a",
author="Michael J. Axtell",
author_email="mja18@psu.edu",
description="General Small RNA-seq Analysis Tool",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/MikeAxtell/gsat",
scripts=['bin/gsat'],
package_dir={'': 'src'},
packages=setuptools.find_packages(where='gsat'),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>3.5, <4',
install_requires=['biopython','python-Levenshtein'],
)
这一行似乎有问题:
packages=setuptools.find_packages(where='gsat'),
我认为应该改为阅读以下内容:
packages=setuptools.find_packages(where='src'),
我正在部署我的第一个 python 项目,但遇到安装问题。我遵循了 https://packaging.python.org/guides/distributing-packages-using-setuptools/#uploading-your-project-to-pypi 中概述的做法。我的项目是用一个顶级可执行脚本 bin/gsat
组织的,该脚本调用导入其他模块,如下所示:
import gsat.input_validation as input_validation
模块在 src/gsat/
中,遵循 https://github.com/pypa/sampleproject
如果我从项目源本地安装,使用开发模式:
pip install -e .
...那么我的安装没有问题,软件可以正常工作。
但是如果我从 PyPI 安装它:
pip install "gsat"
... 那么它不会 运行 因为导入语句找不到模块。错误:
File "/Library/Frameworks/Python.framework/Versions/3.7/bin/gsat", line 10, in <module>
import gsat.input_validation as input_validation
ModuleNotFoundError: No module named 'gsat'
完整项目位于 https://github.com/MikeAxtell/gsat ,提交 c680172。该项目也在 PyPI 上作为 "gsat"。分发文件制作如下:
python3 setup.py sdist bdist_wheel
... 有趣的 setup.py 文件在下面。我确定这是一些菜鸟问题;我是 python 打包和 python 编程的新手,所以在此先感谢您的帮助!
setup.py:
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="gsat",
version="0.1a",
author="Michael J. Axtell",
author_email="mja18@psu.edu",
description="General Small RNA-seq Analysis Tool",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/MikeAxtell/gsat",
scripts=['bin/gsat'],
package_dir={'': 'src'},
packages=setuptools.find_packages(where='gsat'),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>3.5, <4',
install_requires=['biopython','python-Levenshtein'],
)
这一行似乎有问题:
packages=setuptools.find_packages(where='gsat'),
我认为应该改为阅读以下内容:
packages=setuptools.find_packages(where='src'),