gpt4 book ai didi

python - .pypirc 文件的自定义位置

转载 作者:太空狗 更新时间:2023-10-29 16:56:57 25 4
gpt4 key购买 nike

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

所以基本上,您需要做的就是用您自己的实现替换 registerupload 命令。这些实现使用您自己的逻辑重新定义了 _get_rc_file 方法。之后,不要忘记调整 setup 函数中的 cmdclass 参数,以便使用您自己的命令类而不是标准类。

当然,由于两个类都重新定义了相同的方法,您可以通过例如编写一个 mixin 类并重用它等等。此外,如果您通过 upload_docs 命令将 sphinx 文档上传到 PyPI,则必须以相同的方式重载它。无论如何,您应该从上面的代码片段中了解命令重载的基本概念。

关于python - .pypirc 文件的自定义位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37845125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com