Как установить колесо Python под другим именем пакета? (в моем конкретном случае PyCryptodome под именем пакета Cryptodome)

На странице информации об установке PyCryptodome под раздел "Windows (предварительно скомпилированный)":

  1. Установите PyCryptodome как колесо:

pip установить pycryptodomex

  1. Чтобы убедиться, что все работает нормально, запустите набор тестов:

python -m Cryptodome.SelfTest

Однако с этим есть несколько проблем:

  1. Вопреки тому, что говорится в этих инструкциях, это не установит PyCryptoDome как колесо, а загрузит его и попытается собрать, что приведет к ошибке, если у вас не установлена ​​правильная среда сборки. для компонентов C, включенных в этот пакет (и весь беспорядок, связанный с этим, является самым большим преимуществом использования колеса вместо этого).

  2. Даже если вместо этого я загружу правильный файл колеса с PyPi-страницы PyCryptoDome, я должен (насколько я знаете?) вместо этого используйте командную строку следующим образом, чтобы установить его:

pip install c:\some\path\name-of-wheel-file.whl

Это, в свою очередь, заставляет его устанавливаться в пакете «Crypto» по умолчанию вместо пакета «Cryptodome», явно упомянутого в инструкциях (и, следовательно, конфликтующего с любыми ранее существовавшими установками пакета PyCrypto).

Итак, мой вопрос:

Есть ли способ установить файл колеса под именем пакета, отличным от имени пакета по умолчанию?

Похоже, что PyCryptodome не предоставляет никаких конкретных файлов колес для установки под этим альтернативным именем пакета, поэтому, если это невозможно, у меня большая проблема (потому что у меня уже установлен PyCrypto). :-(

ПС. Некоторый дополнительный контекст относительно необходимости альтернативного имени пакета может быть предоставлен следующей цитатой из того же страница установки, ссылка на которую приведена выше:

PyCryptodome можно использовать как:

1. замена старой библиотеки PyCrypto. Вы устанавливаете его с помощью:

pip установить pycryptodome

В этом случае все модули устанавливаются под пакетом Crypto. Вы можете проверить, все ли в порядке с:

python -m Crypto.SelfTest

Следует избегать одновременной установки PyCrypto и PyCryptodome, поскольку они будут мешать друг другу.

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

2. библиотека, независимая от старого PyCrypto. Вы устанавливаете его с помощью:

pip установить pycryptodomex

Вы можете проверить, все ли в порядке с:

python -m Cryptodome.SelfTest

В этом случае все модули устанавливаются под пакетом Cryptodome. PyCrypto и PyCryptodome могут сосуществовать.

Итак, опять же, все, что я хочу, это установить его, как описано в альтернативе 2 в этой цитате, из файла колеса, но проблема в том, что предоставленные файлы колес, по-видимому, по умолчанию имеют только имя пакета, описанное в альтернативе 1 в этой цитате ( то есть «Крипто»).


person QuestionOverflow    schedule 28.05.2016    source источник


Ответы (1)


Насколько я знаю, это невозможно. Единственный способ добиться этого — самостоятельно перекомпилировать колесо после того, как вы изменили его имя в файле setup.py.

person sorin    schedule 30.05.2016
comment
Спасибо (хотя, конечно, не тот ответ, на который я надеялся). И для справки, команда pip install из документации PyCryptodome выше, как было обнаружено, работает с самой последней версией pip, но не с версией, включенной в Python 3.4 (которая по какой-то странной причине скорее пошла с исходной версией, любой угадайте почему?). Дополнительная информация в этом сообщении об ошибке: github.com/Legrandin/pycryptodome/issues/16. Кроме того, файлы колеса для альтернативного имени пакета были доступны на совершенно отдельной странице в PyPi, здесь: pypi .python.org/pypi/pycryptodomex - person QuestionOverflow; 03.06.2016