pip -e:没有神奇的下划线替换

时间:2013-09-30 14:40:05

标签: python virtualenv pip

如果使用带有“pip install -e ...”的git repo进行安装,某些下划线会变为破折号。

有没有办法阻止这个?

我想自动化东西。我希望repo foo_bar~/src/foo_bar,而不是~/src/foo-bar

2 个答案:

答案 0 :(得分:10)

从我在Python邮件列表上的this questionthis response可以看到,这看起来是由于整个Python打包系统中的众多命名约定以及它们之间的兼容性。

Pythons setuptools运行safe_name,其中:

  

将任意字符串转换为标准分发名称

     

任何非字母数字/的运行。字符替换为单个' - '。

即使pipeasy_installPyPi可以接受下划线,但在安装时,它会更改为设置工具标准的单个“ - ”。

答案 1 :(得分:0)

请注意,以上答案不正确。该代码中的确切正则表达式为re.sub('[^A-Za-z0-9.]+', '-', name)。但是,如果尝试使用pip install foo!bar,则会出现较大的解析错误,因此也不是真的。