package_dir 的空字符串键在 setup.py 中有什么作用?
What does an empty string key for package_dir do in setup.py?
我有一个 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'}
有什么意义?为什么我们有一个空字符串作为键?
当您在根级别有多个目录并且模块位于一个目录下时,您可以将该目录定义为根包,然后将在其中查找提供给 packages
命名参数的所有包目录。 Python的官方文档描述的很好:
https://docs.python.org/2/distutils/setupscript.html#listing-whole-packages
在这里,如果代码位于 lib
目录下,那么定义 package_dir = {'': 'lib'}
和 packages = ['foo']
将意味着您告诉该系统在 [=] 下查找 foo
模块11=] 即 lib/foo/__init__.py
存在。
我有一个 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'}
有什么意义?为什么我们有一个空字符串作为键?
当您在根级别有多个目录并且模块位于一个目录下时,您可以将该目录定义为根包,然后将在其中查找提供给 packages
命名参数的所有包目录。 Python的官方文档描述的很好:
https://docs.python.org/2/distutils/setupscript.html#listing-whole-packages
在这里,如果代码位于 lib
目录下,那么定义 package_dir = {'': 'lib'}
和 packages = ['foo']
将意味着您告诉该系统在 [=] 下查找 foo
模块11=] 即 lib/foo/__init__.py
存在。