- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
setuptools
是否允许在自定义位置指定 .pypirc
文件而不是 $HOME/.pypirc
?我正在设置一个 jenkins 作业以发布到内部存储库,并希望 .pypirc
文件位于作业的工作区内。
最佳答案
这可以通过重载用于与 PyPI 或您的自定义存储库服务器通信的默认命令类来实现。这可以在您的 setup.py
脚本中完成。让代码先说话:
# this is your project's setup.py script
import os
from distutils.command.register import register as register_orig
from distutils.command.upload import upload as upload_orig
from setuptools import setup
class register(register_orig):
def _get_rc_file(self):
return os.path.join('.', '.pypirc')
class upload(upload_orig):
def _get_rc_file(self):
return os.path.join('.', '.pypirc')
setup(
name='myproj',
...
cmdclass={
'register': register,
'upload': upload,
}
)
现在,如果你调用
$ python setup.py sdist register upload
服务器凭证将从项目目录中的 .pypirc
获取,而不是默认的 ~/.pypirc
。
所以基本上,您需要做的就是用您自己的实现替换 register
和 upload
命令。这些实现使用您自己的逻辑重新定义了 _get_rc_file
方法。之后,不要忘记调整 setup
函数中的 cmdclass
参数,以便使用您自己的命令类而不是标准类。
当然,由于两个类都重新定义了相同的方法,您可以通过例如编写一个 mixin 类并重用它等等。此外,如果您通过 upload_docs
命令将 sphinx 文档上传到 PyPI,则必须以相同的方式重载它。无论如何,您应该从上面的代码片段中了解命令重载的基本概念。
关于python - .pypirc 文件的自定义位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37845125/
setuptools 是否允许在自定义位置指定 .pypirc 文件而不是 $HOME/.pypirc?我正在设置一个 jenkins 作业以发布到内部存储库,并希望 .pypirc 文件位于作业的工
我正在尝试使用 CloudPypi 设置私有(private) Pypi 云。而且我真的不想将我的密码存储在 .pypirc 中。我希望每次上传包时都提示输入我的密码。 在Python documen
我已安装 pip pypirc 并使用必要的密码设置 ~/.pypirc 文件。为什么每次调用 python setup.py 时,tine 都要求输入密码? $twine upload --re
我想在我的 ~/.pypirc 文件中有多个 PyPI 服务器,这样我就可以根据项目轻松地发布到不同的服务器。 我的用例是这样的,我有一些内部项目要发布到内部 PyPI 服务器 (https://py
这件事让我抓狂。难道不能像下面这样简单地做一些事情吗? python setup.py sdist upload --username me --password 1234 或者提示输入密码: pyt
所以我创建了一个文件 ~/.pypirc [distutils] index-servers = custom [custom] repository: https://dist.secret
我的 .pypirc 文件: [distutils] index-servers = pypi internal [pypi] username:pypiusername password:p
我正在使用 ubuntu,我已经创建了一个 python 包,它已准备好在 PyPI 上注册,但是当我使用 python setup.py register 时,它显示如下错误: Server res
我是一名优秀的程序员,十分优秀!