ติดตั้ง uwsgi 1.2.5 ผ่าน pip


22

ยินดีต้อนรับคุณ,

ขณะนี้ฉันกำลังพยายามติดตั้ง uwsgi ล่าสุดบน VPS ของฉัน (Ubuntu 11.10) ตามคำแนะนำจากเว็บไซต์ http://projects.unbit.it/uwsgi/wiki/Quickstart

pip install uwsgi

ระหว่างการรวบรวมฉันเห็นข้อผิดพลาด:

...
[gcc -pthread] spooler.o
*** uWSGI compiling embedded plugins ***
[gcc -pthread] plugins/python/python_plugin.o
Complete output from command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt:
running install

In file included from plugins/python/python_plugin.c:1:0:

plugins/python/uwsgi_python.h:2:20: fatal error: Python.h: No such file or directory

compilation terminated.

using profile: buildconf/default.ini

detected include path: ['/usr/lib/gcc/i686-linux-gnu/4.6.1/include','/usr/local/include', '/usr/lib/gcc/i686-linux-gnu/4.6.1/include-fixed', '/usr/include/i386-linux-gnu', '/usr/include']

Patching "bin_name" to properly install_scripts dir
...

และในที่สุดฉันก็เห็น:

...

[gcc -pthread] spooler.o

*** uWSGI compiling embedded plugins ***

[gcc -pthread] plugins/python/python_plugin.o

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/etc/apt/sources.list.d/build/uwsgi/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-joud1I-record/install-record.txt failed with error code 1 in /etc/apt/sources.list.d/build/uwsgi
Storing complete log in /root/.pip/pip.log

มีคำแนะนำใด ๆ ที่ฉันจะติดตั้ง uwsgi ล่าสุดได้อย่างไร

ขอแสดงความนับถือ Grzegorz


1
สิ่งที่เกิดขึ้นหลังจากทำตามคำแนะนำทั้งหมดข้างต้นคือแทนที่จะใช้ pip3 ติดตั้ง uwsgi ฉันควรเรียกใช้คำสั่งในฐานะ root: sudo pip3 install uwsgi
tomekwi

คำตอบ:


38

plugins / python / uwsgi_python.h: 2: 20: ข้อผิดพลาดร้ายแรง: Python.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

ในการคอมไพล์ส่วนขยาย C สำหรับ Python คุณต้องใช้ไฟล์ Python สำหรับการพัฒนา:

$ sudo apt-get install python2.7-dev

@JFSebastian: กรุณาดูได้ที่เกี่ยวข้องaskubuntu.com/q/499206/306605 ขอบคุณ
pepr

@JFSebastian: ... หรือstackoverflow.com/q/24822829/1346705
pepr

มีข้อผิดพลาดเดียวกันกับ Debian Wheezy กับ Python 3.4 สิ่งนี้ช่วยได้ขอบคุณ!
fnkr

มีpython2.7-devการติดตั้งและยังคงเห็นข้อผิดพลาด
yentsun

1

ดังนั้นจะมาถึงที่นี่ในกรณีที่คนอื่นเจอปัญหานี้ - แม้ว่าเราได้ติดตั้ง python2.7-dev เรียบร้อยแล้วเราก็ยังได้รับข้อผิดพลาดนี้

สิ่งที่เห็นได้ชัดคือปัญหาคือ gcc ไม่สามารถค้นหาไลบรารีที่รวมอยู่ในการสร้างสคริปต์ pip ได้พยายามที่จะเรียกใช้

เราลงเอยด้วยการรับไฟล์ pip ของ uwsgi: https://pypi.python.org/packages/source/u/uWSGI/uwsgi-1.9.20.tar.gz

แล้วเปลี่ยนมันด้วยตนเองเช่นเดียวกับขั้นตอนดังต่อไปนี้ -

ก่อนอื่นเราคลายซิปแล้ว:

$ tar xvzf uwsgi-1.9.20.tar.gz

เราได้แก้ไขไฟล์: uwsgiconfig.pyโดยแทนที่บรรทัด 213:

cmdline = "%s -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

ไปที่:

cmdline = "%s -I/usr/include/libxml2 -c %s -o %s %s" % (GCC, cflags, objfile, srcfile)

โดยพื้นฐานแล้วการให้ gcc รู้ว่าห้องสมุดของคุณอยู่ที่/usr/include/libxml2(นี่คือกรณีของเราอย่างน้อย)

หลังจากนั้นเราทำการซิปโฟลเดอร์ใหม่:

$ tar cvf uwsgi-1.9.20.tar uwsgi-1.9.20/

$ gzip uwsgi-1.9.20.tar

และใช้ pip ด้วย gzip นั้น:

$ sudo pip install uwsgi-1.9.20.tar.gz

และนั่นก็ใช้งานได้ ..

หวังว่าจะช่วยใครบางคน!


การติดตั้ง gcc ของคุณจะใช้งานไม่ได้หากไม่พบส่วนหัวที่ติดตั้งผ่านแพ็คเกจมาตรฐาน
jfs

0

หากต้องการติดตั้งภายใต้ Cygwin ผ่านpipต้องใช้แพ็คเกจต่อไปนี้

  • GCC-core
  • gcc-g ++ (อาจ)
  • libcrypt-devel
  • libintl-devel
  • python3
  • python3-devel
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.