Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PEP518环境(pyproject.toml)中从另一个包访问非Python文件 我想制作一个Python包(从这里开始,代码为> MyPosib/Cuth>),其中包括非Python文件(在我的例子中,这些是C++头文件),在安装其他包时,可以使用它们,使用它作为依赖关系(从这里看“代码> AtdioPuths”)。_Python_Pip_Setuptools - Fatal编程技术网

在PEP518环境(pyproject.toml)中从另一个包访问非Python文件 我想制作一个Python包(从这里开始,代码为> MyPosib/Cuth>),其中包括非Python文件(在我的例子中,这些是C++头文件),在安装其他包时,可以使用它们,使用它作为依赖关系(从这里看“代码> AtdioPuths”)。

在PEP518环境(pyproject.toml)中从另一个包访问非Python文件 我想制作一个Python包(从这里开始,代码为> MyPosib/Cuth>),其中包括非Python文件(在我的例子中,这些是C++头文件),在安装其他包时,可以使用它们,使用它作为依赖关系(从这里看“代码> AtdioPuths”)。,python,pip,setuptools,Python,Pip,Setuptools,为了使mypackage在源发行版中包含这些文件并使这些文件可安装,我做了以下工作: 包括清单中的文件。在程序包文件中: 到目前为止,将它们放在这两个位置可以使mypackage与使用distutils、setuptools或pip(本地和来自PyPI)时包含的非Python文件一起正确安装。使用setuptools和pip时,我可以在sys.prefix中的文件夹路径下找到非Python文件-例如: 导入系统,操作系统 join(sys.prefix,“文件夹路径”) 当使用distut

为了使
mypackage
在源发行版中包含这些文件并使这些文件可安装,我做了以下工作:

  • 包括
    清单中的文件。在
    程序包文件中:
到目前为止,将它们放在这两个位置可以使
mypackage
与使用
distutils
setuptools
pip
(本地和来自PyPI)时包含的非Python文件一起正确安装。使用
setuptools
pip
时,我可以在
sys.prefix
中的
文件夹路径下找到非Python文件-例如:

导入系统,操作系统 join(sys.prefix,“文件夹路径”)
当使用
distutils
时,它们与python文件位于同一文件夹下,因此可以通过
mypackage找到它们

import re,mypackage
re.sub(r“\uuuu init\uuuu\.py$”,“”,mypackage.\uuuuuu file\uuuuuuuuu)+“文件夹路径”
但问题是:当另一个使用此作为依赖项的包通过PEP518使用
pyproject.toml
文件指定此依赖项时,
mypackage
从PyPI下载,并安装在PEP518生成的临时环境中,但非Python文件不在
sys.prefix
下,它们安装在一些随机命名的临时文件夹下,如下所示:

$TEMP_FOLDER/pip-build-env-otci9gxx/overlay/folder_path
因此,我的脚本尝试在
sys.prefix
mypackage.\uuuuu file\uuuuu
的根目录下查找文件,但没有选择这些文件


如何通过编程和确定方式从
other_package
setup.py
中获取这些文件在PEP518环境中的安装路径?

是否确实要使用
数据_文件

我建议改用
package\u数据
。通过这种方式,文件是Python包本身的一部分(例如安装在
站点包中),安装后很容易检索

资源

使用以下任一选项访问已安装的软件包数据:

1.

2.


3.

您真的想使用
数据文件吗

我建议改用
package\u数据
。通过这种方式,文件是Python包本身的一部分(例如安装在
站点包中),安装后很容易检索

资源

使用以下任一选项访问已安装的软件包数据:

1.

2.

3.

$TEMP_FOLDER/pip-build-env-otci9gxx/overlay/folder_path
import pkgutil
pkgutil.get_data('my_top_level_package.my_sub_package', 'file.bin')
importlib.resources.read_binary('my_top_level_package.my_sub_package', 'file.bin')