我正在部署我的第一个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"
...然后它将无法运行,因为import语句无法找到模块。错误:
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'],)