2

virtualenv ベースの Python プロジェクト用に Python ビルドシステムをセットアップしようとしています。

通常、すべての Python virtualenv プロジェクトは同じ方法でセットアップされます。/src (私のコードが存在する場所) を含む単一のプロジェクト フォルダーと、virtualenv python インタープリターが activate スクリプトと共に存在する /bin です。

$project_path/src を PYTHONPATH 環境変数に追加したい。これをデバッグするために、次のようなプロジェクトをセットアップしました。

{
"build_systems":
[
    {

        "name": "pythonX",
        "env":
        {
            "PYTHONPATH":"${project_path}/xxxxxyy"
        },
        "working_dir": "${project_path:${folder}}/src",
        "cmd":
        [
            "${project_path}/bin/python2.7",
            "-u",
            "$file"
        ]
    }
],
"folders":
[
    {
        "path": "/home/sal/workspace/pythonmoo"
    }
]
}

これをテストするためにPythonスクリプトを作成しました-sys.path(Pythonpathを取得する必要があります)を印刷しましたが、次のように表示されます:

 '/home/sal/workspace/pythonmoo/src/${project_path}/xxxxxyy',

変数が拡張されなかったことは明らかです。

ここで何が間違っていますか?私の目標を達成するためのより良い方法はありますか?

更新 0:

提案されたように、これを .sublime-build ファイルとして再実装しました。結果はまったく同じでした:-変数展開は cmd では正常に機能しましたが、env では機能しませんでした。

{ 
"env":
{
    "PYTHONPATH":"$project_path/src"
},
"working_dir": "${project_path:${folder}}/src",
"cmd":
[
    "${project_path}/bin/python2.7",
    "-u",
    "$file"
]
}
4

1 に答える 1

0

これがあなたが探しているものかどうかはわかりませんが、似たようなことをして設定すると、ディレクトリが"evn":{"PYTHONPATH":"."}プルされます。src

{
    "build_systems": [
        {
            "name": "python-test",
            "cmd": ["${project_path}/Scripts/python", "-u", "$file"],
            "working_dir": "${project_path:${folder}}/src",
            "selector": "source.python",
            "env": {
                "PYTHONPATH": "."
            }
        }
    ],
    "folders": [
        {
            "path": "/C/projects/python/test"
        }
    ]
}

これは、virtualenv を設定するスクリプトを実行すると作成されます。

プロジェクトの構造testは次のとおりです。

test/
|-- Include/
|-- Lib/
|-- Scripts/
|-- src/
|   |-- ospaths.py
|   |-- package/
|   |   |-- test.py

ospaths.py

import sys

def get():
    return sys.path

package/test.py

import ospaths

for path in ospaths.get():
    print path

次の出力が得られます。

C:\projects\python\test\src\package
C:\projects\python\test\lib\site-packages\setuptools-0.6c11-py2.7.egg
C:\projects\python\test\lib\site-packages\pip-1.3.1-py2.7.egg
C:\projects\python\test\src
C:\Windows\system32\python27.zip
C:\projects\python\test\DLLs
C:\projects\python\test\lib
C:\projects\python\test\lib\plat-win
C:\projects\python\test\lib\lib-tk
C:\projects\python\test\Scripts
C:\Python27\Lib
C:\Python27\DLLs
C:\Python27\Lib\lib-tk
C:\projects\python\test
C:\projects\python\test\lib\site-packages
[Finished in 0.6s]
于 2013-06-11T02:19:14.103 に答える