Невозможно установить пакет Python с pip, требуется Microsoft Visual C ++ 14.0

1

Я пытаюсь установить pyjks. Я запускаю все в командной строке администратора. Первоначальная попытка установить pyjks привела к этому:

C:\WINDOWS\system32>pip install pyjks
Collecting pyjks
Collecting pycryptodome (from pyjks)
  Using cached https://files.pythonhosted.org/packages/82/bd/bd192c1314bde108a91295fbec02bc20a816330feb10273aa36d885004ab/pycryptodome-3.6.1-cp36-cp36m-win_amd64.whl
Collecting pyasn1-modules (from pyjks)
  Using cached https://files.pythonhosted.org/packages/e9/51/bcd96bf6231d4b2cc5e023c511bee86637ba375c44a6f9d1b4b7ad1ce4b9/pyasn1_modules-0.2.1-py2.py3-none-any.whl
Collecting pyasn1 (from pyjks)
  Using cached https://files.pythonhosted.org/packages/a0/70/2c27740f08e477499ce19eefe05dbcae6f19fdc49e9e82ce4768be0643b9/pyasn1-0.4.3-py2.py3-none-any.whl
Collecting twofish (from pyjks)
  Using cached https://files.pythonhosted.org/packages/82/b4/9eb026a8e62a04512435d3de25c93f7bda51c8b8c7991c1c0be70b5115a6/twofish-0.3.0.tar.gz
Collecting javaobj-py3 (from pyjks)
  Using cached https://files.pythonhosted.org/packages/6a/7d/1979d67bb8f6c5babb8dda0cb79d6d4663ef9a039c193b5adcc787a86285/javaobj_py3-0.2.4-py2.py3-none-any.whl
Installing collected packages: pycryptodome, pyasn1, pyasn1-modules, twofish, javaobj-py3, pyjks
  Running setup.py install for twofish ... error
    Complete output from command "c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\crrma\\AppData\\Local\\Temp\\pip-install-xlk00hde\\twofish\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\crrma\AppData\Local\Temp\pip-record-5jn53157\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    copying twofish.py -> build\lib.win-amd64-3.6
    running build_ext
    building '_twofish' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    ----------------------------------------
Command ""c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\crrma\\AppData\\Local\\Temp\\pip-install-xlk00hde\\twofish\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\crrma\AppData\Local\Temp\pip-record-5jn53157\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\crrma\AppData\Local\Temp\pip-install-xlk00hde\twofish\

Я установил Визуальный C++ 14.0 из здесь и попытался переустановить. Но такая же ошибка.

Итак, как было предложено в нескольких комментариях на этой странице, я обновил setuptools:

C:\WINDOWS\system32>pip install --upgrade setuptools
Collecting setuptools
  Using cached https://files.pythonhosted.org/packages/7f/e1/820d941153923aac1d49d7fc37e17b6e73bfbd2904959fffbad77900cf92/setuptools-39.2.0-py2.py3-none-any.whl
Installing collected packages: setuptools
  Found existing installation: setuptools 39.0.1
    Uninstalling setuptools-39.0.1:
      Successfully uninstalled setuptools-39.0.1
Successfully installed setuptools-39.2.0

Но все равно такая же ошибка. Так, как было предложено на той же странице, я загрузил tar.gz отсюда и установил из него:

C:\Users\crrma\Downloads>pip install pyjks-17.1.1.tar.gz
Processing c:\users\crrma\downloads\pyjks-17.1.1.tar.gz
Requirement already satisfied: pyasn1 in c:\program files\python36\lib\site-packages (from pyjks==17.1.1) (0.4.3)
Requirement already satisfied: pyasn1_modules in c:\program files\python36\lib\site-packages (from pyjks==17.1.1) (0.2.1)
Collecting javaobj-py3 (from pyjks==17.1.1)
  Using cached https://files.pythonhosted.org/packages/6a/7d/1979d67bb8f6c5babb8dda0cb79d6d4663ef9a039c193b5adcc787a86285/javaobj_py3-0.2.4-py2.py3-none-any.whl
Requirement already satisfied: pycryptodome in c:\program files\python36\lib\site-packages (from pyjks==17.1.1) (3.6.1)
Collecting twofish (from pyjks==17.1.1)
  Using cached https://files.pythonhosted.org/packages/82/b4/9eb026a8e62a04512435d3de25c93f7bda51c8b8c7991c1c0be70b5115a6/twofish-0.3.0.tar.gz
Installing collected packages: javaobj-py3, twofish, pyjks
  Running setup.py install for twofish ... error
    Complete output from command "c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\crrma\\AppData\\Local\\Temp\\pip-install-c3n_0udc\\twofish\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\crrma\AppData\Local\Temp\pip-record-tpgigq69\install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.6
    copying twofish.py -> build\lib.win-amd64-3.6
    running build_ext
    building '_twofish' extension
    error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools

    ----------------------------------------
Command ""c:\program files\python36\python.exe" -u -c "import setuptools, tokenize;__file__='C:\\Users\\crrma\\AppData\\Local\\Temp\\pip-install-c3n_0udc\\twofish\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\crrma\AppData\Local\Temp\pip-record-tpgigq69\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\crrma\AppData\Local\Temp\pip-install-c3n_0udc\twofish\

Но его просто не устанавливают. Что здесь происходит?

Я использую последнюю версию python:

C:\>python
Python 3.6.6rc1 (v3.6.6rc1:1015e38be4, Jun 12 2018, 08:38:06) [MSC v.1900 64 bit (AMD64)] on win32
Теги:
pip

1 ответ

0

Я не смог это исправить. (Я пытался установить это, но это не сработало. Похоже, что я установил runtime, но не компилятор, и нам нужно установить Visual Studio для установки компилятора. Мне не очень понравилось запускать большую настройку Visual Studio, установите один пакет python.) Вместо этого я прибегал к настройке cygwin (что мало по сравнению с Visual Studio и уже было установлено на моей машине). Я попытался запустить pip3 install pyjks на терминале cygwin, но теперь он дал ошибку, заявив, что не нашел gcc. Кажется, что каким-то образом зависимости pyjks нужно компилировать компилятором C. Поэтому я установил gcc в cygwin. Однако это также провалилось. Поэтому я установил gcc, используя apt-cyg. Все этапы описаны ниже.

  1. Установить cygwin
  2. В настройке cygwin выберите пакеты python3, pip3 и gcc-g++ в окне выбора пакета:

    • python3-devel: интерпретатор языка Py3K
    • python3-pip: инструмент установки пакета Python
    • gcc-core: сборник компиляторов GNU (C, OpenMP)
    • gcc-g++: сборник компиляторов GNU (C++)

    Изображение 174551

  3. Если вы забыли выбрать их или у вас уже установлен cygwin и вы хотите установить эти дополнительные пакеты, вы можете повторно запустить настройку cygwin (то есть path-to-cygwin\cygwin\setup\setup-x86_64.exe) и выбрать выше пакетов.
  4. Я не смог установить gcc с помощью вышеупомянутого подхода. Это давало мне следующую ошибку: Изображение 174551
    Поэтому я попытался установить его с помощью apt-cyg. Вы можете найти шаги для установки apt-cyg в этом ответе. Как только apt-cyg доступен из терминала cyg-win (то есть, path-to-cygwin\cygwin\setup\Cygwin.bat), вы можете запустить следующую команду для установки gcc

    apt-cyg install gcc-g++
    
  5. Как только gcc установлен, вы можете установить pyjks с помощью pip (он не даст никакой ошибки, говорящей, что компилятор C не найден):

    pip3 install pyjks
    

Я даже смог указать python внутри cygwin (то есть path-to-cygwin\cygwin\bin\python3) в качестве интерпретатора python для модуля eclipse PyDev. Это также позволило мне использовать os.fork() в python, так как модуль windows python os не содержит fork().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню