努力使 Python 模块可通过 PyPi 访问
Struggling with making a Python module accessible via PyPi
不久前我写了一个简单的 Python 界面用于使用 Pushwoosh 通知服务,它位于 https://github.com/Astutech/Pushwoosh-Python-library 并且我终于开始发布它以便可以使用点子。这是我第一次向 PyPi 发布 Python 库,我有点糊涂了。
尝试安装它时出现以下错误:
Collecting pushwoosh
Using cached pushwoosh-1.0.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-5m3jj7uu/pushwoosh/setup.py", line 17, in <module>
with open(path.join(here, 'DESCRIPTION.rst'), encoding='utf-8') as f:
File "/usr/lib/python3.4/codecs.py", line 896, in open
file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-5m3jj7uu/pushwoosh/DESCRIPTION.rst'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-5m3jj7uu/pushwoosh
看起来像是某种与路径相关的问题。我不确定 pushwoosh.py
是否在正确的位置。但是,如果我将它移动到 pushwoosh/pushwoosh.py
,并添加一个 pushwoosh/__init__.py
文件,那么我需要按如下方式导入它:
from pushwoosh.pushwoosh import Pushwoosh
这显然不理想。从文档中我看不出哪里出错了。我应该使用什么目录布局?
编辑:我现在已经解决了 DESCRIPTION.rst
的问题,但是除非我将 pushwoosh.py
文件移动到 pushwoosh
文件夹并添加一个 __init__.py
文件,否则安装该库实际上并未安装 pushwoosh.py
,因此它不起作用。我该如何修改它才能像这样导入它?
from pushwoosh import Pushwoosh
最后想通了。如果您将文件作为 __init__.py
.
放在 module_name
文件夹中,它会起作用
您可以将其放入您的 __init__py 文件中。
from pushwoosh import Pushwoosh
这让您可以像这样进行导入,而无需将所有内容打包到 init.py 文件本身。
from pushwoosh import Pushwoosh
查看此 post http://mikegrouchy.com/blog/2012/05/be-pythonic-__init__py.html
以获得更好的解释
不久前我写了一个简单的 Python 界面用于使用 Pushwoosh 通知服务,它位于 https://github.com/Astutech/Pushwoosh-Python-library 并且我终于开始发布它以便可以使用点子。这是我第一次向 PyPi 发布 Python 库,我有点糊涂了。
尝试安装它时出现以下错误:
Collecting pushwoosh
Using cached pushwoosh-1.0.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 20, in <module>
File "/tmp/pip-build-5m3jj7uu/pushwoosh/setup.py", line 17, in <module>
with open(path.join(here, 'DESCRIPTION.rst'), encoding='utf-8') as f:
File "/usr/lib/python3.4/codecs.py", line 896, in open
file = builtins.open(filename, mode, buffering)
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-build-5m3jj7uu/pushwoosh/DESCRIPTION.rst'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-5m3jj7uu/pushwoosh
看起来像是某种与路径相关的问题。我不确定 pushwoosh.py
是否在正确的位置。但是,如果我将它移动到 pushwoosh/pushwoosh.py
,并添加一个 pushwoosh/__init__.py
文件,那么我需要按如下方式导入它:
from pushwoosh.pushwoosh import Pushwoosh
这显然不理想。从文档中我看不出哪里出错了。我应该使用什么目录布局?
编辑:我现在已经解决了 DESCRIPTION.rst
的问题,但是除非我将 pushwoosh.py
文件移动到 pushwoosh
文件夹并添加一个 __init__.py
文件,否则安装该库实际上并未安装 pushwoosh.py
,因此它不起作用。我该如何修改它才能像这样导入它?
from pushwoosh import Pushwoosh
最后想通了。如果您将文件作为 __init__.py
.
module_name
文件夹中,它会起作用
您可以将其放入您的 __init__py 文件中。
from pushwoosh import Pushwoosh
这让您可以像这样进行导入,而无需将所有内容打包到 init.py 文件本身。
from pushwoosh import Pushwoosh
查看此 post http://mikegrouchy.com/blog/2012/05/be-pythonic-__init__py.html
以获得更好的解释