在pypi上从github提供python包

时间:2014-11-03 06:26:35

标签: github pypi

我在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的任何想法吗?

2 个答案:

答案 0 :(得分:4)

我找到了正确的清晰文档:http://peterdowns.com/posts/first-time-with-pypi.html

我也列出了以下步骤:

  • 注册pypi帐户
  • 将您的凭据放在文本文件.pypirc中(在Windows上,您需要将.pypirc.txt重命名为终端中的.pypirc)
  • 设置HOME环境变量(您可以在终端中进行)

    设置HOME =路径到目录,放置.pypirc

  • 确保您有正确的setup.py和setup.cfg文件。您需要阅读文档和示例项目。

  • make https://github.com/my_username/mypackage/packages/0.1
  • 运行

    构建mypackage.zip

    python 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:****