如果使用带有“pip install -e ...”的git repo进行安装,某些下划线会变为破折号。
有没有办法阻止这个?
我想自动化东西。我希望repo foo_bar
为~/src/foo_bar
,而不是~/src/foo-bar
。
答案 0 :(得分:10)
从我在Python邮件列表上的this question和this response可以看到,这看起来是由于整个Python打包系统中的众多命名约定以及它们之间的兼容性。
Pythons setuptools
运行safe_name
,其中:
将任意字符串转换为标准分发名称
任何非字母数字/的运行。字符替换为单个' - '。
即使pip
,easy_install
和PyPi
可以接受下划线,但在安装时,它会更改为设置工具标准的单个“ - ”。
答案 1 :(得分:0)
请注意,以上答案不正确。该代码中的确切正则表达式为re.sub('[^A-Za-z0-9.]+', '-', name)
。但是,如果尝试使用pip install foo!bar
,则会出现较大的解析错误,因此也不是真的。