Как я могу использовать pywin32 с virtualenv, не имея необходимость включать папку пакетов сайта серверной среды?

Я работаю с PyInstaller в соответствии с Python 2.6, который только частично поддерживается из-за MS путаницы, создали с их декларацией nonense, который теперь влияет на Python, так как это - теперь скомпилированный MSVC8.

Проблема состоит в том, что явная поддержка встраивания полагается на pywin32 расширения для создания, который является болью, потому что без включения папки пакетов сайта хоста, когда я создаю virtualenv (своего рода поражения точка в среде сборки) я не могу найти способ установить необходимые расширения, таким образом, они доступны для PyInstaller.

Кто-либо нашел решение этой проблемы?

52
задан jkp 1 December 2009 в 16:31
поделиться

2 ответа

Хорошо, так как мне нужно было найти путь вперед, я импровизировал. Я внутренне создал репозиторий git с взломанной версией pywin32, который будет устанавливаться в виртуальном окружении с использованием стандартного сценария setup.py . Потребовалось много возни, чтобы заставить его работать правильно, но мне удалось его загрузить, и теперь зависимый код работает так, как мне нужно. Если люди считают, что это будет полезно для сообщества, пожалуйста, оставьте комментарий: если я получу достаточно, я постараюсь добавить что-нибудь в свою учетную запись github.

4
ответ дан 7 November 2019 в 09:23
поделиться

Я нашел http://old.nabble.com/Windows:-virtualenv-and-pywin32--td27658201.html (теперь это нерабочая ссылка), который предложил следующее решение:

  1. Найдите в http://sourceforge.net/projects/pywin32/files/ URL нужного вам exe
  2. Активируйте ваш virtualenv
  3. Запустите easy_install http://PATH.TO/EXE/DOWNLOAD

Это работает с современными версиями setuptools (примерно с февраля 2014 года, о чем сообщил tovmeod в комментариях).


Если вы используете старую версию setuptools (или распространяете ее, слитую обратно в setuptools), вы можете получить это сообщение об ошибке:

error: c:\users\blah\appdata\local\temp\easy_install-ibkzv7\pywin32-214.win32-py2.6.exe is not a valid distutils Windows . exe

В таком случае:

  1. Скачайте exe самостоятельно
  2. Активируйте свой virtualenv
  3. Запустите easy_install DOWNLOADED_FILE.exe

Я скорее надеялся попробовать "pip install", чем "easy_install", но это не сработало, и, вероятно, никогда не сработает (необходима цитата).


Наконец, я нашел, но не проверил решение на http://www.mail-archive.com/python-list@python.org/msg272040.html, а именно:

Решил это, скопировав файл pywin32.pth в мой site-packages virtualenv и отредактировав файл так, чтобы он указывал на путь.

Если другие варианты вам не подходят, может быть, подойдет этот?

75
ответ дан 7 November 2019 в 09:23
поделиться
Другие вопросы по тегам:

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