“Вам нужен компилятор C для создания uWSGI” - но gcc присутствует

Я получаю следующую ошибку:

~$ sudo apt install build-essential python2.7-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
build-essential is already the newest version (12.4ubuntu1).
python2.7-dev is already the newest version (2.7.15-4ubuntu4~18.04.2).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
~$ which gcc
/usr/bin/gcc
~$ gcc
gcc: fatal error: no input files
compilation terminated.
~$ pip install uwsgi==1.9.20 --index-url=http://192.168.1.200/pypackages/simple/ --trusted-host 192.168.1.200
Collecting uwsgi==1.9.20
  Downloading http://192.168.1.200/pypackages/simple/uwsgi/uwsgi-1.9.20.tar.gz (731kB)
    100% |████████████████████████████████| 737kB 12.1MB/s 
Building wheels for collected packages: uwsgi
  Running setup.py bdist_wheel for uwsgi ... error
  Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-u0AKpd/uwsgi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmp63xyFzpip-wheel- --python-tag cp27:
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-x86_64-2.7
  copying uwsgidecorators.py -> build/lib.linux-x86_64-2.7
  installing to build/bdist.linux-x86_64/wheel
  running install
  using profile: buildconf/default.ini
  detected include path: ['/usr/lib/gcc/x86_64-linux-gnu/7/include', '/usr/local/include', '/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed', '/usr/include/x86_64-linux-gnu', '/usr/include']
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-build-u0AKpd/uwsgi/setup.py", line 109, in <module>
      distclass=uWSGIDistribution,
    File "/usr/lib/python2.7/dist-packages/setuptools/__init__.py", line 129, in setup
      return distutils.core.setup(**attrs)
    File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
      dist.run_commands()
    File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
      self.run_command(cmd)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/usr/lib/python2.7/dist-packages/wheel/bdist_wheel.py", line 240, in run
      self.run_command('install')
    File "/usr/lib/python2.7/distutils/cmd.py", line 326, in run_command
      self.distribution.run_command(command)
    File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-u0AKpd/uwsgi/setup.py", line 71, in run
      conf = uc.uConf(get_profile())
    File "uwsgiconfig.py", line 627, in __init__
      raise Exception("you need a C compiler to build uWSGI")
  Exception: you need a C compiler to build uWSGI

Ошибка говорит, что у меня нет компилятора C, но gcc установлен.

0
задан 9 December 2019 в 17:57

1 ответ

uwsgi уже находится в репозиториях. Это не могла бы быть версия 1.9.20, но это должно все еще работать на Ваши потребности (и в основном тот же uwsgi от PyPI кроме предварительно скомпилированного и устанавливаемого).

Для установки его и ее плагина Python 3, просто выполненного:

sudo apt install uwsgi uwsgi-plugin-python3

Это установит uwsgi и плагин Python 3. Можно затем выполниться uwsgi --plugin=python3 ... как нормальные для выполнения его непосредственно.

С учетом вышесказанного, если Вы не хотите выполнять вещи сами вручную (хотя Вы, возможно, должны в некоторых случаях), можно также настроить uwsgi configuiration файлы в /etc/uwsgi/*.ini и затем запустить те сервисы с sudo systemctl stop uwsgi && sudo systemctl start uwsgi, и это выполнит демона-ized автоматически. Документация относительно этого, однако, находится в документации uwsgi, и является слишком сложной и всесторонней, чтобы я скопировал здесь. Я использую это для выполнения трех API для моего работодателя на их инфраструктуре, это - базирующийся UWSGI и передало данные в них от веб-конечных точек, разрешенных получить доступ к точкам API, и это работает довольно эффективно.

1
ответ дан 21 December 2019 в 23:37

Другие вопросы по тегам:

Похожие вопросы: