我正在开发一个具有多个.txt依赖项的Python egg(它们是用于通过egg本身生成文件的模板),而我正努力将这些依赖项复制到site- packages
期间setup.pyinstall
。根据distribute
文档…
我的软件包的文件系统:
setup.py
package
|--- __init__.py
|--- main.py
|--- binary (calls main.py with pkg_resources.load_entry_point)
|--- templates
|--file1.txt
|--file2.txt
在setup.py中:
setup(
[...]
eager_resources = ['templates/file1.txt', 'templates/file2.txt']
)
在我的包装内:
from pkg_resources import resource_string
tpl = resource_string(__name__, 'templates/file1.txt')
…配置和文件系统的这种组合应导致file1.txt
并file2.txt
通过提供pkg_resources.resource_string
。不幸的是,它们在site- packages
期间没有被复制到setup.py install
。我想念什么?
谢谢!
您是否查看过setuptools文档,其中包含软件包数据:https ://setuptools.readthedocs.io/en/latest/setuptools.html#include-
data-files
基本上,您只需要include_package_data=True
在setup.py文件中进行设置即可。如果您使用的是Subversion或CVS,则将包含所有版本化的文件。如果不是,则可以指定MANIFEST.in文件中要包括的文件。
我相信分发也支持这一点。
然后,您可以像打包文件一样访问文件。即在main.py中,您可以拥有:
import os.path
f = open(os.path.join(os.path.dirname(__file__),'templates','file1.txt'))
print f.read()
f.close()
这也可以在打包版本中使用。一个警告是您还必须zip_safe = False
在setup.py中进行设置,以便在安装过程中解压缩所有文件。
问题内容: 情况 我正在尝试将开放源代码库移植到Python3。(SymPy,如果有人想知道的话。) 因此,2to3在为Python 3构建时,我需要自动运行。为此,我需要使用。因此,我需要移植当前的系统(根据)是。 问题 不幸的是,我不知道什么是这些模块-之间的区别。该文档最好是粗略的,因为它们似乎是彼此的一个分支,旨在在大多数情况下兼容(但实际上不是全部)……等等。 问题 有人可以解释差异吗?
本文向大家介绍利用setuptools打包python程序的方法步骤,包括了利用setuptools打包python程序的方法步骤的使用技巧和注意事项,需要的朋友参考一下 一、准备工程文件 1.创建工程leeoo 2.在工程根目录下创建setup.py文件 3.在工程根目录下创建同名package 二、编辑setup.py 1.编辑setup.py文件 2.参数说明 三、编写测试代码 1.在lee
资源合并(打包) 关于资源合并,在 fis3 中有多种方式来实现。为了搞清楚他们都有些什么特点,适用于什么场合,我觉得有必要聚集在一起一一说明下。 packTo 命中目标文件,设置 packTo 即能完成简单的合并操作。 fis.match('/static/folderA/**.js', { packTo: '/static/pkg/folderA.js' }); fis.match('/
其他资源:可以定位为“不需要做任务处理,只要直接打包输出就可以的资源”,比如icon图标资源、字体资源等 打包其他资源只需要使用到 file-loader 一、打包其他资源的核心配置 // webpack.config.js webpack的配置文件 // 路径: ./webpack.config.js ………… // loader的配置 module: { rul
一、打包图片的核心配置 // loader的配置 module: { rules: [ //打包 css 文件的详细loader配置 { //匹配哪些文件 test: /\.css$/, //使用哪些loader进行处理
一、创建html文件、 css 文件或 less 文件 <!-- 文件路径 ./src/index.html --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="