运行 setup.py 时更改包名称

Change package name when running setup.py

我已经 fork 了一个 repo,现在我已经克隆了它。当 运行 将 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(当 running/installing 通过 setup.py 时),这样我就可以 运行 import foo 而不是import foo-3.3...

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

如果您还需要什么,请告诉我,我愿意解决这个问题。

您不必导入 foo-3.3;实际上你不能导入,因为它是 SyntaxError.

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

这只是鸡蛋的名字,您不必担心。 Python 知道在哪里寻找包裹,所以当你这样做时:

import foo

...它会做正确的事。