一時的にpythonのライブラリパスを追加する便利ぽいやつを作りました。コードは投稿のお尻に。
- 重複登録しない
- パス文字列の自動整形ぽい機能
- パスの存在チェック
- win / mac 両対応
- win / mac 環境にあわせた文字列に変換してから登録する
などの機能があります。なお、一時登録なのでMAYAを再起動すると設定は消えて無くなります。
パスを通さずに重いファイル開いちゃった時とか、実験用のコードを扱う場合などにお使いください。
MAYA 2018 + MacOS Sierra および、 MAYA 2017 + Windows10 Pro で動作確認しました。
 コードを実行すると、こんな感じのダイアログがでます。
コードを実行すると、こんな感じのダイアログがでます。
 追加成功した場合。
追加成功した場合。
 そのパスがすでに存在した場合は追加できません。
そのパスがすでに存在した場合は追加できません。
 追加しようとしたフォルダが存在しない場合は追加するかどうか選べます。
追加しようとしたフォルダが存在しない場合は追加するかどうか選べます。
 Macで¥区切りのパスを登録しようとすると内部でmac式のパス記述に変換して動作します。MacにCドライブとかはないわけですが、ファイルサーバーをsmbではじまるパスで登録する時などは便利かもしれません?
Macで¥区切りのパスを登録しようとすると内部でmac式のパス記述に変換して動作します。MacにCドライブとかはないわけですが、ファイルサーバーをsmbではじまるパスで登録する時などは便利かもしれません?
 `/` で登録したパスを `¥` で登録し直そうとしても
`/` で登録したパスを `¥` で登録し直そうとしても
 このように弾かれます。
このように弾かれます。
 windowsマシンでこのようなパスを登録して
windowsマシンでこのようなパスを登録して
 その後違う書き方で登録しようとすると
その後違う書き方で登録しようとすると
 正しく弾かれます。
正しく弾かれます。
シェルフ登録用クイック実行コード
import sys
import os
import pymel.core as pm
import platform
def temp_def():
    result = pm.promptDialog(
                title='Python Path Appender',
                message='追加するライブラリパスを入力してください (win / mac OK)',
                button=['OK', 'Cancel'],
                defaultButton='OK',
                cancelButton='Cancel',
                dismissString='Cancel')
    if result != 'OK':
        return
    lib_path = pm.promptDialog(query=True, text=True)
    # 左右の空白を取り除く
    lib_path = lib_path.strip()
    # 一度posix(mac形式)のパス起票に統一して直す(両者の混在などをなくす)
    lib_path = lib_path.replace('\\', '/')
    if len(lib_path) <= 1:
        # あまり短いのは省いておく
        pm.confirmDialog(title='確認', message='パスが短すぎます。', button='OK')
        return
    if lib_path.endswith('/'):
        # 最後のパス区切り文字は消しておく(そのままでも大丈夫だが統一して重複をなくす)
        lib_path = lib_path[:-1]
    if platform.system() == 'Windows':
        # 元に戻す
        lib_path = lib_path.replace('/', os.path.sep)
    if lib_path in sys.path:
        pm.confirmDialog(title='確認', message='パスはすでに登録されています。', button='OK')
        return
    file_exsistence = os.path.exists(lib_path)
    if not file_exsistence:
        result = pm.confirmDialog(
            title='確認', message='"{}"\nパスがファイルシステムに存在しません、それでも登録しますか?'.format(lib_path),
            button=('OK', 'Cancel'),
            defaultButton='OK', cancelButton='Cancel', dismissString='Cancel')
        if result != 'OK':
            return
    sys.path.append(lib_path)
    pm.confirmDialog(title='確認', message='"{}"\n上記をパスに追加しました。'.format(lib_path), button='OK')
temp_def()
del temp_def