gpt4 book ai didi

python - 使用 apt-get 将软件包安装到虚拟环境中

转载 作者:行者123 更新时间:2023-12-04 18:26:28 25 4
gpt4 key购买 nike

我正在尝试为我的 Python3 项目创建一个虚拟环境。问题是,我试图安装到 virtualenv 中的一些依赖项不是通过 pip。例如,要获取 LibTorrent,我必须运行:$ sudo apt-get install python3-libtorrent(LibTorrent 是一个带有 Python 绑定(bind)的 C++ 库)。在环境之外,我的项目运行良好。但在里面我得到一个导入错误:

(env) me@Comp:~/Projects/test$ python3 main.py 
Traceback (most recent call last):
File "main.py", line 4, in <module>
import libtorrent as lt
ModuleNotFoundError: No module named 'libtorrent'

如果我在环境中运行 $ sudo apt-get install python3-libtorrent,它会告诉我它已经安装了:

(env) me@Comp:~/Projects/test$ sudo apt-get install python3-libtorrent
Reading package lists... Done
Building dependency tree
Reading state information... Done
python3-libtorrent is already the newest version (1.1.1-1build2).
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.

我的理解是这是因为apt-get是一个全局命令,与环境无关。但如果是这种情况,我该如何将这个包安装到我的环境中?

最佳答案

您是否设法解决了您的问题?我有同样的问题,我偶然发现了这个: http://dreamingpotato.com/2015/11/21/how-to-install-python-libtorrent-in-virtualenv/

(复制下面的命令以防有一天链接断开)

sudo apt-get build-dep python-libtorrent
wget http://downloads.sourceforge.net/project/libtorrent/libtorrent/libtorrent-rasterbar-1.0.5.tar.gz
tar -zxvf libtorrent-rasterbar-1.0.5.tar.gz
cd libtorrent-rasterbar-1.0.5/
./configure --enable-python-binding PYTHON=`which python` --prefix=$VIRTUAL_ENV
make
make install
export LD_LIBRARY_PATH="$VIRTUAL_ENV/lib"

我的猜测是问题如下:

    正如您所说,
  1. python3-libtorrentpython-libtorrent 只是 C++ 库的 python 绑定(bind)/包装器。
  2. 在此链接上,有一个命令可以根据您使用的 python 路径编译 lib-torrent:./configure --enable-python-binding PYTHON=`which python` --prefix=$VIRTUAL_ENV 当您创建虚拟环境时,它会发生变化。

所以理论上,您必须为您使用的每个虚拟环境编译 libtorrent。这是一个糟糕的解决方案,但我相信这将是唯一有效的解决方案。比简单的 pip install -r requirements.txt 更糟糕。

让我知道这是否适合您,并考虑将其标记为正确答案。

关于python - 使用 apt-get 将软件包安装到虚拟环境中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47506800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com