使用python setup.py sdist创建源发行版报错:包目录rmn不存在
报错解决方法
错误原因
你在setup.py的setup函数中通过packages=['rmn']声明了需要打包名为rmn的Python包,但setuptools在setup.py同级目录下找不到名为rmn、且包含__init__.py文件的文件夹,因此抛出该错误。
解决方案
根据你的实际代码结构选择对应方法即可:
- 情况1:你的业务代码本身存放在
rmn目录中
将rmn目录移动到与setup.py同级的位置,同时确认rmn目录下存在__init__.py文件(空文件也可,是Python识别目录为包的必要标识)。 - 情况2:你的业务代码是单文件模块,没有存放在
rmn目录中
可以选择两种修改方式:- 新建
rmn目录,将所有业务代码移入该目录,同时新增空的__init__.py文件,保持原有setup.py配置不变 - 修改
setup.py配置,将packages=['rmn']替换为py_modules=['你的模块文件名'],例如你的单文件模块名为rmn.py就写py_modules=['rmn']
- 新建
- 情况3:不想手动指定要打包的包
调整setup.py使用find_packages自动扫描符合要求的包,修改后的代码如下:from setuptools import setup, find_packages setup( name='rmn', version='1.0.0', author='Guilherme Campos, Tiago Moraes', author_email='guilhermesouza0911@ufmg.br', packages=find_packages() )
配置调整完成后重新执行python setup.py sdist即可正常生成源发行版。
内容的提问来源于stack exchange,提问作者camposouza
相关产品推荐
相关产品推荐

