easy_install от интерпретатора Python Maya
Я хотел бы скачать и установить setup_tools, easy_install и tinydb из интерпретатора Python Mayas..
Проверьте настройки () в коде ниже.
Я довольно близок, но похоже, что системная команда для запуска ez-setup.py не загружает пакеты easy_install в каталог mayas site_packages, что странно, потому что та же команда отлично работает в оболочке.
Поэтому системный вызов выглядит так: /Applications/Autodesk/maya2016/Maya.app/Contents/bin/mayapy /Users/paxtongerrish/downloads/ez_setup.py
Я указываю интерпретатору Mayas Python на ez_setup.py
когда я вбиваю эту команду в оболочку, она загружает setup_tools в директорию mayas python site_packages... Отлично!:D
Однако.. Мне нужно, чтобы все это происходило из интерпретатора Python Mayas, и оно не работает при вызове из os.system или subprocess.call
Спасибо! import os import sys import urllib2 Подпроцесс импорта
setup_tools_address = 'https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py'
downloads_directory = '%s/downloads' % os.getenv('HOME')
if not os.path.exists(downloads_directory):
os.makedirs(downloads_directory)
def setup():
url = setup_tools_address
file_path = '%s/%s' % (downloads_directory, url.split('/')[-1])
maya_py = maya_py_path()
for p in download_url(url, file_path):
print p
system_command = '%s %s' % (maya_py, file_path)
print '----- sys command--- (only works in shell)------\n'
print system_command
print '\n----------------------------------------------\n'
#This system command works from shell, but not from python.... Maybe superuser thing??
#os.system(system_command)
#sub process doesnt work either
p = subprocess.Popen([maya_py, file_path], shell=True, stdout=subprocess.PIPE)
print '--->>'
p.wait()
for i in p.stdout.readline():
sys.stdout.flush()
print i
add_eggs()
from setuptools.command import easy_install
easy_install.main(['tinydb'])
add_eggs()
import tinydb
def download_url(url, file_path, block_size=2056):
request = urllib2.urlopen(url)
file_size = int(request.info()['Content-Length'])
if not file_path:
file_path = '%s/%s' % (os.getenv('HOME'), url.split("/")[-1])
downloaded_chunk = 0
with open(file_path, "wb") as f:
while downloaded_chunk < file_size:
chunk = request.read(block_size)
downloaded_chunk += len(chunk)
f.write(chunk)
progress = float(downloaded_chunk) / file_size * 100
yield progress
print("\nDownload Complete.")
def maya_app_path():
appName = 'Maya'
if sys.platform == 'win32':
appName = 'Maya.exe'
for p in sys.path:
app_path = '%s/%s' % (p.replace('\\','/') , appName)
if os.path.exists(app_path):
return app_path
def maya_py_path():
file_name = 'mayapy'
if sys.platform == 'win32':
file_name = 'mayapy.exe'
return '%s\\%s' % (os.path.dirname(maya_app_path().replace('/','\\')), file_name.replace('/','\\'))
return '%s/bin/%s' % (os.path.dirname(os.path.dirname(maya_app_path())), file_name)
def get_site_packages_directory():
for p in sys.path:
if p.endswith('site-packages'):
return p
def add_eggs():
site_packages_directory = get_site_packages_directory()
for item in os.listdir(site_packages_directory):
if item.endswith('.egg'):
sys.path.append('%s/%s' % (site_packages_directory, item))