我在github上有一个公共python项目。它只是意味着在Windows上运行。 我想将它添加到pypi,以便人们可以通过
安装它pip install mypackage
有没有办法将我的包存储在github而不是使用aws s3存储桶? 如果有,怎么样? 我还需要知道预期的格式是什么。 我是否应该制作一个包文件夹并将mypackage-1.0.tar.gz放入其中,尽管这是针对Windows的?
我已经读过这个:http://docs.python-guide.org/en/latest/shipping/packaging/
到目前为止,我跑的时候 pip install https://github.com/my_username/mypackage 我收到这个错误:从网址https://github.com/my_username/mypackage下载 清理......例外:回溯(最近一次调用最后一次):文件 “C:\ Python27 \ LIB \站点包\ PIP-1.5.6-py2.7.egg \ PIP \ basecommand.py” 第122行,主要 status = self.run(options,args)文件“C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ commands \ install.py”, 第278行,在运行中 requirement_set.prepare_files(finder,force_root_egg_info = self.bundle,bundle = self.bundle)文件 “C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ req.py”,line 1197,在prepare_files中 do_download,文件“C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ req.py”,行 1375,在unpack_url中 self.session,文件“C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ download.py”, 第582行,在unpack_http_url中 unpack_file(temp_location,location,content_type,link)文件“C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ util.py”,line 627,在unpack_file中 和is_svn_page(file_contents(filename))):文件“C:\ Python27 \ lib \ site-packages \ pip-1.5.6-py2.7.egg \ pip \ util.py”,line 210,在file_contents中 return fp.read()。decode('utf-8')文件“C:\ Python27 \ lib \ encodings \ utf_8.py”,第16行,解码 return codecs.utf_8_decode(input,errors,True)UnicodeDecodeError:'utf8'编解码器无法解码位置1的字节0x8b: 起始字节无效
我还发现我必须编写setup.py和setup.cfg然后才能运行
python setup.py build
python setup.py register
>>Registering mypackage to http://pypi.python.org/pypi
>>Server response (401): basic auth failed
我不知道注册失败的原因。 还尝试过:
python setup.py sdist register upload
抱怨如下: PyPi issues - Upload failed (401): You must be identified to edit package information 但是创建.pypirc并没有解决问题。 有关如何将我的包添加到pypi的任何想法吗?
答案 0 :(得分:4)
我找到了正确的清晰文档:http://peterdowns.com/posts/first-time-with-pypi.html
我也列出了以下步骤:
设置HOME环境变量(您可以在终端中进行)
设置HOME =路径到目录,放置.pypirc
确保您有正确的setup.py和setup.cfg文件。您需要阅读文档和示例项目。
运行
构建mypackage.zippython setup.py register -r pypitest
将它上传到github上的0.1文件夹
在github中标记它
git tag 0.1 -m“添加一个标记,以便我们可以将它放在PyPI上。” git push --tags origin master
注册并上传:
python setup.py register -r pypi
python setup.py sdist upload -r pypi
答案 1 :(得分:1)
我遇到了相同的401身份验证问题:我根据docs将[distutils]
更改为[pypirc]
,这对我有用。
这是我的~/.pypirc
文件:
[pypirc]
index-servers =
pypi
pypitest
[pypi]
repository=https://pypi.python.org/pypi
[pypitest]
repository=https://testpypi.python.org/pypi
[server-login]
username:stav
password:****