gpt4 book ai didi

python - 将 python 应用程序打包到 deb 中是否会抑制虚拟环境的使用?

转载 作者:行者123 更新时间:2023-12-01 00:19:11 28 4
gpt4 key购买 nike

我目前正在尝试找到一种方法来将用 python 编写的应用程序设置到我们的生产主机。我目前使用 Debian 软件包 apt 存储库,因此我倾向于将应用程序打包到 deb 软件包中。

stdeb工具允许我这样做,并且我使用以下 setup.py 成功创建了一个 deb 包:

import setuptools

ld = "Some long description"

setuptools.setup(
name = "my_fancy_app",
version="0.0.1",
author="Me Myself",
author_email="me@my.self",
description="Some description",
long_description=ld,
packages=setuptools.find_packages(),
entry_points={
'console_scripts': [ 'hlpth = my_fancy_app.__main__:main' ]
},
classifiers=[
"Programming Language :: Python :: 3.7",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.7'
)

我看到的问题是 Debian 软件包中的路径已指定为指向系统 site-packages。这是它

$ dpkg -c deb_dist/python3-my-fancy-app_0.0.1-1_all.deb                                                                                                                                                                                                                                        
-rw-r--r-- root/root 1 2019-11-27 15:22 ./usr/lib/python3/dist-packages/my_fancy_app/__init__.py
-rw-r--r-- root/root 78 2019-11-27 15:23 ./usr/lib/python3/dist-packages/my_fancy_app/__main__.py
//...other entries omitted

从我现在看来,此类 deb 打包坚持将包设置到“核心”site-packages 中。有没有办法使用 Debian 软件包来解决这个问题,并允许应用程序能够安装到虚拟环境中?

最佳答案

Python 虚拟环境是使用 Python 的打包工具(主要是 pip,但还有其他选择)进行管理的。

通过将某些内容打包到 Debian 包中,您已将其转换为与 Python 工具不兼容的格式,当然 Debian 打包工具对 Python 虚拟环境一无所知。

如果您想在虚拟环境中使用您的应用程序,只需将其打包为Python包即可。没有理由为此用例构建 .deb 包。

关于python - 将 python 应用程序打包到 deb 中是否会抑制虚拟环境的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59072707/

28 4 0