Python3为PyPi准备包,不包括子模块
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python3为PyPi准备包,不包括子模块,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2448字,纯文字阅读大概需要4分钟。
内容图文
笔记:
>我使用的是Python v3.6
>我已阅读有关Modules and Packages的文档
>我已阅读并完成了Packaging project tutorial
>我看了Sample Project(与教程项目不同)
我有一个简单的包我想做
myPackage/ The project directory
myPackage/ Top-level package
__init__.py Initialize my package
myClass.py a file with a single class in it
setup.py
README.md
...
dist/
myClass.py就在哪里
class myClass:
__init__(self):
print('here')
我的myPackage / __ init__.py文件就像演示一样
name = "myPackage"
我成功地在pypi和pip上安装了它.
我可以导入myPackage但不像教程那样
example_pkg.name
作品,
myPackage.name
才不是.
上面链接的Sample项目在init.py文件上没有详细说明.
所以我的问题如下:
假设在模块和包的文档下有一个类似的包:
sound/ Top-level package
__init__.py Initialize the sound package
formats/ Subpackage for file format conversions
__init__.py
wavread.py
wavwrite.py
aiffread.py
aiffwrite.py
auread.py
auwrite.py
...
effects/ Subpackage for sound effects
__init__.py
echo.py
surround.py
reverse.py
...
filters/ Subpackage for filters
__init__.py
equalizer.py
vocoder.py
karaoke.py
...
实际的文件结构在哪里(在打包项目教程之后)
sound/
sound/ (Top-level package)
__init__.py
...
dist/
build/
sound.egg/
README.md
...
什么声音/ __ init__.py(或myPackage / __ init__.py),以便我可以导入它并访问其中的函数,子模块和类?
很抱歉在python包装上是一个菜鸟.
# contents of setup.py
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="progil",
version="0.0.4",
author="name",
author_email="name@web",
description="Progress In Line",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://pypi.org/project/progil/",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
)
解决方法:
使用我的项目johnnydep检查分发的顶级导入名称是否正确:
# pip install johnnydep
$johnnydep progil --fields name summary versions_available import_names
name summary versions_available import_names
------ ---------------- -------------------- --------------
progil Progress In Line 0.0.2, 0.0.3, 0.0.4 progril
你要踢自己.看起来你命名了这个发行版:
progil
但是您在源代码中命名了包
progril
pip安装程序和导入progril工作.您在设置时没有注意到,因为您使用了find_packages(),实际上,没有理由分发名称需要与包名匹配.
内容总结
以上是互联网集市为您收集整理的Python3为PyPi准备包,不包括子模块全部内容,希望文章能够帮你解决Python3为PyPi准备包,不包括子模块所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。