Как я могу программно установить модули Python/через Python script?
Могу ли я загружать и устанавливать модули Python из PyPi строго внутри script без использования оболочки вообще?
Я использую нестандартную среду Python, интерпретатор Autodesk Maya Python. Это не связано с "easy_install", и нет "оболочки", только интерпретатор python script, вызываемый основным исполняемым файлом Maya. Копирование и вставка содержимого ez_setup.py в окно редактора script и его правильная установка устанавливают easy_install где-то в каталог Maya, но script неправильно записывает интерпретатор Python как "... maya.exe" вместо "...mayapy.exe" Кроме того, использование easy_install требует оболочки.
Цель состоит в том, чтобы предоставить Python script, который, например, устанавливает NumPy в систему Maya Python. Это может быть достигнуто путем отбрасывания яиц в каталог сайтов-пакетов, но для этого требуется ручное вмешательство пользователя. Все, что конечный пользователь должен делать за пределами среды Maya, по сути, неприкасаемый, особенно возиться с файловой системой. Но возиться с файловой системой через script? Это прекрасно.
Есть ли что-то более элегантное, чем ez_setup.py + редактирование полученных запросов easy_install... py + subprocess? Я чувствую, что это основная функция. Я вижу документацию онлайн для установки программного модуля через pip... но сначала нужно установить pip!
Каков самый элегантный способ установки модуля строго в пределах script?
Ответы
Ответ 1
Установка easy_install для Maya на windows.
- Загрузите ez_setup.py.
- открыть Windows cmd повышен (запустите, введите cmd, rmb щелкните по нему → запустите как администратор)
- измените каталог cmd на x:\maya install dir\bin
- Пример: cd c:\Program Files\MayaXX\bin
- выполнить следующую команду mayapy x:\WhereYouSaved\ez_setup.py
Теперь легкая установка должна быть настроена правильно. Вы можете выполнить следующие шаги:
- cd x:\maya install dir\python\scripts
- переименуйте все файлы в этой папке, чтобы начать с ma
- пример: для% я in (*) do ren% я ma% i
- добавьте эту папку в свой путь.
- hit win + e
- rmb мой компьютер и выберите свойства
- Расширенные настройки системы → Переменные среды
- путь к переменной поиска, отредактируйте его и добавьте; x:\maya install dir\python\scripts
Теперь вы можете вызвать maeasy_install pythonModule из cmd для установки файлов. Кроме того, вы можете вызывать следующее внутри Maya для установки модулей:
from setuptools.command import easy_install
easy_install.main( ["pythonModule"] )
ПРИМЕЧАНИЕ.. Если Maya установлен в программные файлы, вы не можете устанавливать вещи без повышения. Если вы не измените разрешения на доступ к директории python Maya.
Ответ 2
#!/usr/bin/env python
from __future__ import print_function
REQUIREMENTS = [ 'distribute', 'version', 'Cython', 'sortedcollection' ]
try:
from setuptools import find_packages
from distutils.core import setup
from Cython.Distutils import build_ext as cython_build
import sortedcollection
except:
import os, pip
pip_args = [ '-vvv' ]
proxy = os.environ['http_proxy']
if proxy:
pip_args.append('--proxy')
pip_args.append(proxy)
pip_args.append('install')
for req in REQUIREMENTS:
pip_args.append( req )
print('Installing requirements: ' + str(REQUIREMENTS))
pip.main(initial_args = pip_args)
# do it again
from setuptools import find_packages
from distutils.core import setup
from Cython.Distutils import build_ext as cython_build
import sortedcollection