Pertanyaan Apakah mungkin untuk menginstal Fabric (Python) di Virtualenv? Mengalami kesalahan


Saya mencoba menginstal Fabric di Virtualenv tetapi saya mendapatkan kesalahan. Saya usinh Python 2.7.2+

src/MD2.c:31:20: fatal error: Python.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /home/andre/python_virtualenv/bin/python -c "import setuptools;__file__='/home/andre/python_virtualenv/build/pycrypto/setup.py'; exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-YGuAIj-record/install-record.txt --install-headers /home/andre/python_virtualenv/include/site/python2.7 failed with error code 1
Storing complete log in /home/andre/.pip/pip.log

Beberapa petunjuk tentang apa yang salah di sini?

Salam Hormat,


7
2018-01-06 09:32


asal


Jawaban:


Jika Anda menggunakan Linux rasa Debian, Anda perlu menginstal paket python2.x-dev

sudo apt-get install python2.7-dev

Ini karena beberapa libs python hanya mengikat ke libs C yang perlu dikompilasi sebelum digunakan, membutuhkan header untuk melakukannya.

Fabric menggunakan Paramiko untuk terhubung melalui SSH, yang mencakup binding tersebut.

Header sering dalam paket yang disebut packagename-dev (debian) atau packagename-develop (redhat). Di sini kita melihat kepala python.h hilang untuk python 2.7, jadi kami menginstal python2.7-dev. Anda harus melakukannya hanya sekali untuk semua envs wirtual Anda karena sudah diinstal pada tingkat sistem.

Masalah yang sama muncul jika Anda menggunakan lib yang berhubungan dengan produk C lainnya seperti mysql libs, yang akan membutuhkan header mysql.


15
2018-01-06 10:52



Anda harus membiarkan gcc mengetahui path dan path lib milik Python.

Pertama, Anda perlu menemukan jalur include & lib Python Anda.

Sebagai contoh:

/home/me/soft/include

dan

/home/me/soft/lib

Lalu, ekspor var berikut di bash

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/me/soft/include

Dan

export LD_LIBRARY_PATH=$C_INCLUDE_PATH:/home/me/soft/lib

Ini bukan satu-satunya cara, tetapi harus bekerja untuk Anda.


1
2018-01-06 09:41