MANIFEST.IN中包含的数据文件存储在哪里?
Where are the data files included in MANIFEST.IN stored?
我让这个小程序用 Python3.5 做,结构如下:
awesome_gui/
app.config
MANIFEST.in
setup.py
awesome_gui/
__init__.py
main.py
setup.py:
#!/usr/bin/env python
import os
from setuptools import setup
setup(
name = "awesomegui",
version = "1.0",
author = "Me",
author_email = "me@example.com",
description = "Awesome GUI",
packages=['awesome_gui'],
entry_points = {
'console_scripts': ['awesomegui=awesome_gui.main'],
},
include_package_data=True,
)
MANIFEST.in
include app.config
执行以下行并创建 .deb:
$ python3 setup.py --command-packages=stdeb.command bdist_deb
并解压:
$ sudo dpkg -i deb_dist/python3-awesomegui_1.0-1_all.deb
代码(*.py)保存在/usr/lib/python3/dist-packages/awesome_gui/中。但是我没有看到 app.config 保存在哪里。
有谁知道非代码的数据文件存放在哪里?
谢谢!
正常情况下,包数据应该在包目录中(除了main.py
之外)。
readme.txt, license, long description as package data in root directory 多用于sdist, pypi,不会被安装
因为有人问我是怎么解决的,所以我在下面描述一下。我对初始方法做了以下操作:
我将初始项目的结构更改为这个:
awesome_gui/
MANIFEST.in
setup.py
awesome_gui/
app.config
src/
__init__.py
main.py
可以看到app.config文件已经移动到awesome_gui/ 项目文件夹和名为 src 的文件夹也已创建,并且代码移入其中。
setup.py 文件也被编辑:
#!/usr/bin/env python
import os
from setuptools import setup
setup(
name = "awesomegui",
version = "1.0",
author = "Me",
author_email = "me@example.com",
description = "Awesome GUI",
packages=['awesome_gui',
'awesome_gui.src',
],
entry_points = {
'console_scripts': ['awesomegui=awesome_gui.src.main:main'],
},
include_package_data=True,
package_data={"awesome_gui": ['app.config']},
)
在 packages 中添加了 src 文件夹在 entry_points 字段中。还添加了带有非 python 文件的 package_data 字段。
通过添加文件夹级别,MANIFEST.in也进行了修改:
include awesome_gui/app.config
使用命令安装后,通过这些步骤,我将非 python 文件放在 /usr/lib/python3/dist-packages/awesome_gui/ 文件夹中。
我让这个小程序用 Python3.5 做,结构如下:
awesome_gui/
app.config
MANIFEST.in
setup.py
awesome_gui/
__init__.py
main.py
setup.py:
#!/usr/bin/env python
import os
from setuptools import setup
setup(
name = "awesomegui",
version = "1.0",
author = "Me",
author_email = "me@example.com",
description = "Awesome GUI",
packages=['awesome_gui'],
entry_points = {
'console_scripts': ['awesomegui=awesome_gui.main'],
},
include_package_data=True,
)
MANIFEST.in
include app.config
执行以下行并创建 .deb:
$ python3 setup.py --command-packages=stdeb.command bdist_deb
并解压:
$ sudo dpkg -i deb_dist/python3-awesomegui_1.0-1_all.deb
代码(*.py)保存在/usr/lib/python3/dist-packages/awesome_gui/中。但是我没有看到 app.config 保存在哪里。
有谁知道非代码的数据文件存放在哪里?
谢谢!
正常情况下,包数据应该在包目录中(除了main.py
之外)。
readme.txt, license, long description as package data in root directory 多用于sdist, pypi,不会被安装
因为有人问我是怎么解决的,所以我在下面描述一下。我对初始方法做了以下操作:
我将初始项目的结构更改为这个:
awesome_gui/ MANIFEST.in setup.py awesome_gui/ app.config src/ __init__.py main.py
可以看到app.config文件已经移动到awesome_gui/ 项目文件夹和名为 src 的文件夹也已创建,并且代码移入其中。
setup.py 文件也被编辑:
#!/usr/bin/env python import os from setuptools import setup setup( name = "awesomegui", version = "1.0", author = "Me", author_email = "me@example.com", description = "Awesome GUI", packages=['awesome_gui', 'awesome_gui.src', ], entry_points = { 'console_scripts': ['awesomegui=awesome_gui.src.main:main'], }, include_package_data=True, package_data={"awesome_gui": ['app.config']}, )
在 packages 中添加了 src 文件夹在 entry_points 字段中。还添加了带有非 python 文件的 package_data 字段。
通过添加文件夹级别,MANIFEST.in也进行了修改:
include awesome_gui/app.config
使用命令安装后,通过这些步骤,我将非 python 文件放在 /usr/lib/python3/dist-packages/awesome_gui/ 文件夹中。