23

シェルをまったく使用せずに、厳密にスクリプト内でPyPiからPythonモジュールをダウンロードしてインストールできますか?

非標準のPython環境であるAutodeskMayaのPythonインタープリターを使用しています。これには「easy_install」は付属しておらず、「シェル」もありません。メインのMaya実行可能ファイルによって呼び出されるPythonスクリプトインタープリターのみです。ez_setup.pyの内容をコピーしてスクリプトエディターウィンドウに貼り付けて実行すると、easy_installがMayaのディレクトリのどこかに正しくインストールされますが、スクリプトはPythonインタープリターを「...mayapy.exe」ではなく「...maya.exe」として誤って記録します。 「さらに、easy_installを使用するにはシェルが必要です。

目的は、たとえばNumPyをMayaPythonシステムにインストールするPythonスクリプトを提供することです。これは、卵をsite-packagesディレクトリにドロップすることで実現できますが、手動でユーザーが介入する必要があります。エンドユーザーがMaya環境の外でしなければならないことは、特にファイルシステムをいじることは、本質的に手が届きません。しかし、スクリプトを介してファイルシステムをいじりますか?それはいいです。

ez_setup.py+結果のeasy_install...pyの+サブプロセス呼び出しを編集するよりもエレガントなものはありますか?これが基本的な機能だと思います。pipを介したプログラムによるモジュールのインストールに関するドキュメントをオンラインで表示しています...しかし、pipを最初にインストールする必要があります!

スクリプトの範囲内に厳密にモジュールをインストールするための最も洗練された方法は何ですか?

4

3 に答える 3

18

WindowsにMaya用のeasy_installをインストールします。

  1. ez_setup.pyをダウンロードします。
  2. Windows cmd昇格を開きます(開始、cmdと入力、rmbクリック->管理者として実行)
  3. cmdディレクトリをx:\ maya install dir\binに変更します
    • 例:cd c:\ Program Files \ MayaXX \ bin
  4. 次のコマンドを実行しますmayapyx:\ WhereYouSaved \ ez_setup.py

これで、簡単なインストールが適切に設定されます。それでも次の手順を実行することをお勧めします。

  1. cd x:\ maya install dir \ python \ scripts
  2. このフォルダ内のすべてのファイルの名前をmaで始まる名前に変更します
    • 例:(*)の%iの場合、ren%i ma%iを実行します
  3. このフォルダをパスに追加します
    • win+eを押す
    • コンピューターを元に戻し、プロパティを選択します
    • 詳細なシステム設定->環境変数
    • 変数パスを検索して編集し、; x:\ maya install dir \ python\scriptsを追加します

これで、cmdからmaeasy_installpythonModuleを呼び出してインストールすることができます。また、Maya内で以下を呼び出して、モジュールをインストールすることもできます。

from setuptools.command import easy_install
easy_install.main( ["pythonModule"] )

注: Mayaがプログラムファイルにインストールされている場合、昇格せずに実際にインストールすることはできません。ディスクのアクセス許可をMayapythonディレクトリに変更しない限り。

于 2012-10-22T17:46:47.077 に答える
11
#!/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
于 2013-08-02T15:05:47.450 に答える
1

ez_setup.pyそれを機能させるには、ファイルを開き、次の行sにアフターを追加するだけです。http

DEFAULT_URL     = "http://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]

になるように

DEFAULT_URL     = "https://pypi.python.org/packages/%s/s/setuptools/" % sys.version[:3]
于 2018-07-07T12:54:38.510 に答える