Python package_dir的空字符串键在setup.py中起什么作用?
我有一个Python package_dir的空字符串键在setup.py中起什么作用?,python,gradle,setuptools,Python,Gradle,Setuptools,我有一个setup.py文件,看起来像这样: import setuptools from distgradle import GradleDistribution setuptools.setup( distclass=GradleDistribution, package_dir={'': 'src'}, packages=setuptools.find_packages('src'), include_package_data=True, namespace_pac
setup.py
文件,看起来像这样:
import setuptools
from distgradle import GradleDistribution
setuptools.setup(
distclass=GradleDistribution,
package_dir={'': 'src'},
packages=setuptools.find_packages('src'),
include_package_data=True,
namespace_packages=['foo'],
entry_points={
'console_scripts': [
'first = foo.something.first:main',
'second = foo.somethingelse.second:main',
],
},
)
package_dir={'':'src'}
的意义是什么?为什么我们有一个空字符串作为键?当您在根级别有多个目录,并且模块位于一个目录下时,您可以将该目录定义为根包,然后提供给包命名参数的所有包都将在该目录中查找。Python的官方文档对此进行了很好的描述:
在这里,如果代码驻留在lib
目录下,那么定义package_dir={'':'lib'}
和packages=['foo']
将意味着您告诉系统在lib
目录下查找foo
模块,即lib/foo/\uu init\uuuu.py
存在