我相信这个问题是asked before,但我仍然有些困惑。我正在尝试安装一个Python软件包,该软件包具有一些带有子目录的数据文件。这是我的设置:
setup.py
src/
mypkg/
__init__.py
module.py
data/
tables.dat
spoons.dat
sub/
forks.dat
在the docs之后,我尝试添加:
setup(...,
packages=['mypkg'],
package_dir={'mypkg': 'src/mypkg'},
package_data={'mypkg': ['data/*.dat', 'data/sub/*.dat']},
)
我使用python setup.py install
安装模块(尽管最终我将使用python setup.py sdist upload
将软件包上载到pypi,以便其他人可以pip install
使用模块。
运行python setup.py install
命令后,找到模块位置,然后我import mypkg
和print(mypkg.__file__)
。但是,在包目录中,我可以看到data
,但看不到data/sub
。有人知道我在想什么吗?任何帮助将不胜感激!
答案 0 :(得分:1)
嗯,事实证明上面的方法很好!
要将模块安装到我的site-packages/mypkg
位置,我只需要使用:python setup.py sdist
,然后使用pip install dist/mypkg-0.0.1.tar.gz
。
然后我的数据文件位于site-packages/mypkg
中。
答案 1 :(得分:0)
我遇到了同样的问题,就我而言,问题在于软件包已安装且在执行时
pip install .
在我的本地系统中,它没有重新安装,因此不包含这些软件包。
对我来说,安装前先卸载是关键