我正在尝试为我的Python3项目创建一个虚拟环境。问题是,我试图安装到virtualenv中的一些依赖项不是通过pip。例如,要获得LibTorrent,我必须运行:$ sudo apt-get install python3-libtorrent
(LibTorrent是一个带有Python绑定的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是一个全局命令,与环境无关。但如果是这种情况,我该如何将此软件包安装到我的环境中?
答案 0 :(得分:0)
您是否设法解决了您的问题?我遇到了同样的问题,我偶然发现了这个问题: 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"
我的猜测是问题如下:
python3-libtorrent
和python-libtorrent
只是对C ++库的python绑定/包装。./configure --enable-python-binding PYTHON=`which python` --prefix=$VIRTUAL_ENV
在您创建虚拟环境时会发生变化。所以从理论上讲,你必须为你使用的每一个virtualenv编译libtorrent。这是一个可怕的解决方案,但我相信这将是唯一有效的解决方案。最简单的方法是pip install -r requirements.txt
。
请告诉我这是否适合您,并考虑将此标记为正确答案。