Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
如果您使用带有“pip install -e ...”的 git repo 安装,则在某处下划线会更改为破折号。
有没有办法阻止这种情况?
我想自动化的东西。我希望回购foo_bar是~/src/foo_bar,不是~/src/foo-bar。
foo_bar
~/src/foo_bar
~/src/foo-bar
从我从这个问题和Python 邮件列表上的回复中可以看出,这似乎是由于 Python 打包系统中的众多命名约定以及它们之间的兼容性。
Pythonssetuptools运行safe_name:
setuptools
safe_name
将任意字符串转换为标准分布名称 任何非字母数字的运行/。字符替换为单个“-”。
将任意字符串转换为标准分布名称
任何非字母数字的运行/。字符替换为单个“-”。
尽管pip, easy_installandPyPi可以接受下划线,但在安装时将其更改为单个 '-' 用于 setuptools 标准。
pip
easy_install
PyPi
请注意,上面的答案是不正确的。代码中的确切正则表达式是re.sub('[^A-Za-z0-9.]+', '-', name). 但是如果你尝试pip install foo!bar你会得到一个很大的解析错误,所以这也不是真的。
re.sub('[^A-Za-z0-9.]+', '-', name)
pip install foo!bar