我正在尝试在我的virtualenv中为python安装mysqlclient。它失败了以下内容:
#include "Python.h"
^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
经过一番研究,我发现我需要安装python-dev。我把它安装在我的主目录中(即/ usr / bin ...)但它没有安装virtualenv但每次我输入:
sudo apt-get install python-dev
我收到以下回复:
Reading package lists... Done
Building dependency tree
Reading state information... Done
python-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 453 not upgraded.
显示其可用性,在virtualenv mysqlclient之外安装正确。问题是如何纠正python-dev安装到virtualenv
答案 0 :(得分:0)
这是因为virtualenv不会将include和lib目录链接到virtualenv的目录。我通过使用anaconda虚拟环境解决了这个问题。 希望有帮助。
答案 1 :(得分:0)
在Ubuntu 16.04上,我遵循these instructions成功地使用python3-dev建立了Python虚拟环境。
答案 2 :(得分:0)
也许不是最好的方法,但是我的解决方案是安装miniconda。您也可以尝试使用更大的Anaconda发行版。我相信这些发行版都内置了python-dev。
答案 3 :(得分:0)
我目前在 Ubuntu 20 中遇到问题,默认 python 是 python 3.8。当我尝试在需要使用 python 3.9 的 Object.defineProperty(HTMLElement.prototype, 'scrollHeight', { configurable: true, value: 500 })
Object.defineProperty(HTMLElement.prototype, 'clientHeight', { configurable: true, value: 10 })
创建的 virtualenv 中安装 Pillow 时,这会导致问题。
到目前为止我发现的最简单的解决方案是为 3.9 安装 python-dev
pipenv
以前我安装了 sudo apt install python3.9-dev
,它总是默认为 3.8
答案 4 :(得分:-1)
我相信已经安装了 python-dev。编译时可能没有包含头文件路径。
您可以通过以下方式搜索 Python.h:
find <venv folder> | grep Python.h
如果无法在您的虚拟环境中找到该文件,则应使用如下简单的命令进行安装:
pip install python-dev (or python2/3.x-dev)
获得路径后,您需要通过添加该路径来编译文件,例如,如果您使用的是 conda:
gcc <<your prev command args>> -I/home/<user>/anaconda3/envs/<<vinv_name>>/include/python3.7m/
如果您使用的是 make 实用程序,您还可以使用 export as 在 C_INCLUDE_PATH(或 CPP_INCLUDE_PATH,如果使用 C++)中设置路径:
export C_INCLUDE_PATH=/home/<user>/anaconda3/envs/<<vinv_name>>/include/python3.7m/