setup.py 发布 遭遇 ImportError
setup(
name="rdir",
version="0.45",
description="....",
url="...",
license="MIT",
packages=["rdir"],
scripts=["rdir/rdir.py"],
install_requires=['colorama', 'pyquery'],
)
File strucure:
rdir
|-- __init__.py
|-- core
|-- __init__.py
|-- rdir_core.py
`-- generateHTML
|-- __init__.py
然后无论我发布pypi还是本地install,错误如下:
sudo python setup.py sdist upload # upload pypi
sudo python setup.py install # local
# try `from rdir import rdir`
> ImportError: No module named core.rdir_core
我看了一下site-packages的rdir.egg里有个scripts文件夹,把所有.py文件都挪到同一层了,所以路径不对。但是我看了很多网上的写法,包括官方的文档和github一些人家的python项目的setup.py,看了一堆,packages、package_dir 改了又改还是不对。
求指教如何正确给多层package写打包的setup.py,谢谢。
======================
感谢大家,问题已解决,确实核心是script的问题。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
scripts
不是用来装 Python “脚本”的吧,人家指的是“可执行脚本”。如果你确实需要安装一个新“命令”,也可以使用entry_points
。官方文档请看:https://setuptools.pypa.io/en/latest/setuptools.html
关于setuptools, 在Github上你可以找到很多相关的例子
多层Package打包, 一般是建议用 find_packages 工具让setup自动搜索
例如:
另外 你的scripts的用法也是不对。 setuptools 里一般用entry_point 作为scripts的入口,
例如:
你可以参考一个github上的例子 -- 小弟前段时间写的一个工作的爬虫安装配置:
https://github.com/mengfeng/zjobs/blob/master/setup.py