运行setup.py时更改包名称

时间:2018-03-08 14:17:03

标签: python git clone setuptools

我已经分了一个回购,现在我克隆了它。在内部运行setup.py文件时,Python会将程序包内部的软件包安装为一个晦涩难懂的名称,在Python文件中导入它将不可行。

例如,我分叉并克隆一个名为foo的仓库。我也可以在setup.py文件中看到这个:

setup(
    name='foo',
    version='3.3.0-rc6',
    packages=find_packages('src'),
    package_dir={'': 'src'},
    include_package_data=True,

当我运行python setup.py install时,我发现该软件包已安装为foo-3.3.0rc6-py3.6.egg。我不想在每个使用它的项目中将包导入为此名称。

如何将软件包名称更改为foo(通过setup.py运行/安装时),以便我可以运行import foo而不是import foo-3.3...

我觉得我不能只重命名它,好像我希望其他用户克隆回购,而不必像我一样经历同样的麻烦。包名是否嵌入在setup.py文件夹中的某个位置?

如果您还有其他需要,请告诉我,我愿意解决此问题。

2 个答案:

答案 0 :(得分:2)

您不必导入foo-3.3;实际上你不能导入SyntaxError

您不必从foo-3.3导入foo-3.3.0rc6-py3.6.egg,因为distutils / setuptools配置了正确的鸡蛋导入路径。查看easy-install.pth文件,您会找到./foo-3.3.0rc6-py3.6.egg。运行python并验证sys.path - 必须有foo-3.3.0rc6-py3.6.egg条目,以便import foo有效。

答案 1 :(得分:2)

这只是鸡蛋的名字,你不用担心它。 Python知道在哪里查找包,所以当你做

import foo

它会做正确的事。