我正在尝试安装一个软件包setuptools
包括console_scripts
在 Windows 7 上。我正在尝试更改我的值PYTHONUSERBASE
安装到自定义目录中--user
旗帜。如果我在值中使用反斜杠PYTHONUSERBASE
, as in
set PYTHONUSERBASE=C:\testing
一切正常。但是,如果我使用正斜杠,如
set PYTHONUSERBASE=C:/testing
软件包本身安装到正确的位置,但是console_scripts
(并且只有console_scripts
)安装到C:testing\Scripts
。显然,当存在正斜杠时,setuptools
将路径视为相对路径只为console_scripts
。在我真正的包中,我从配置文件中读取值,所以我真的不想处理路径分隔符的规范化,因为它也需要在 Linux 上工作。为了进行测试,我有一个具有以下结构的包
|-- setup.py
|-- foobar\
|---- __init__.py
|---- __main__.py
中的代码__main__.py
is
def main(): print('This is the main function')
and setup.py
好像:
from setuptools import setup
setup(
name='foobar',
version='1.0.0',
packages=['foobar'],
entry_points={
'console_scripts': [
'foobar=foobar.__main__:main',
],
},
)
Why is setuptools
删除路径中的第一个正斜杠,如何修复它?我认为这个问题与我的问题有关,但我不认为它解决了问题:Windows 上的 Python os.path.join https://stackoverflow.com/questions/2422798/python-os-path-join-on-windows