python包mdure_如何正确给多层package写打包的setup.py,packagesetup.py,setup( name

如何正确给多层package写打包的setup.py,packagesetup.py,setup( namesetup( 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 pypisudo 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的问题。

解决方案: http://www.cnblogs.com/lhfcws/p/4215551.html

scripts 不是用来装 Python “脚本”的吧,人家指的是“可执行脚本”。如果你确实需要安装一个新“命令”,也可以使用 entry_points。

官方文档请看:https://setuptools.pypa.io/en/latest/setuptools.html

关于setuptools, 在Github上你可以找到很多相关的例子

多层Package打包, 一般是建议用 find_packages 工具让setup自动搜索

例如:from setuptools import setup, find_packages # Always prefer setuptools over distutilsfrom codecs import open # To use a consistent encodingfrom os import pathhere = path.abspath(path.dirname(__file__))packages=find_packages(exclude=['contrib', 'docs', 'tests*'])print packagessetup( .... # You can just specify the packages manually here if your project is # simple. Or you can use find_packages(). packages = packages, .....)

另外 你的scripts的用法也是不对。 setuptools 里一般用entry_point 作为scripts的入口,

例如:# To provide executable scripts, use entry points in preference to the# "scripts" keyword. Entry points provide cross-platform support and allow# pip to create the appropriate form of executable for the target platform.entry_points={ 'console_scripts': [ 'zjobs=app.run:parse_process_args', ],},

你可以参考一个github上的例子 -- 小弟前段时间写的一个工作的爬虫安装配置:

https://github.com/mengfeng/zjobs/blob/master/setup.py

编橙之家文章,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值