Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 运行setup.py时更改包名_Python_Git_Clone_Setuptools - Fatal编程技术网

Python 运行setup.py时更改包名

Python 运行setup.py时更改包名,python,git,clone,setuptools,Python,Git,Clone,Setuptools,我已经完成了回购协议,现在我已经克隆了它。在内部运行setup.py文件时,Python会在站点包中以一个模糊的名称安装包,而在Python文件中导入此名称是不可行的 例如,我派生并克隆了一个名为foo的repo。我还可以在setup.py文件中看到: setup( name='foo', version='3.3.0-rc6', packages=find_packages('src'), package_dir={'': 'src'}, include

我已经完成了回购协议,现在我已经克隆了它。在内部运行setup.py文件时,Python会在站点包中以一个模糊的名称安装包,而在Python文件中导入此名称是不可行的

例如,我派生并克隆了一个名为
foo
的repo。我还可以在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文件夹中


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

您不必导入
foo-3.3
;实际上,您无法导入,因为它是
SyntaxError


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

这只是egg的名称,您不必担心。Python知道在哪里查找包,因此当您这样做时:

import foo

…它会做正确的事情。

你试过什么了吗?你的目录结构是什么样的?哎呀,我的糟糕!我认为我无法导入它,因为真正的包在.egg文件夹中。这一切都让人困惑。谢谢你的提示,我可以导入我克隆的软件包了。