4

pydev を使用して Python でスクリプトを作成したいと考えています。私が抱えている問題は、スクリプトがあるプロジェクト ディレクトリでコンソールを起動できないことです。コンソールは pydev/aptana フォルダー (aptana フォルダーのどこか) で起動します。

これらを解決するには、次のコードをスクリプトに追加します。

import os
import inspect
filename = inspect.getframeinfo(inspect.currentframe()).filename
curpath = os.path.dirname(os.path.abspath(filename))
os.chdir(curpath)

誰かがpydev ++の方法で起動したときに、コンソールのディレクトリをプロジェクトの位置パスに自動的に変更する方法を知っていますCtrlか?AltEnter

- 編集 -

誰かがもっと好きなら、これが私自身の解決策です:

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version)) import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if ('Aptana Workspace' in p)][0]) pwd()
4

3 に答える 3

3

Preferences -> PyDev -> Interactive Console -> Initial Commands で実行前スクリプトに以下を追加しました。

import os
import inspect

__old_runfile = runfile

def runfile(file):
    curpath = os.path.dirname(os.path.abspath(file))
    os.chdir(curpath)
    __old_runfile(file)

これにより、デフォルトの runfile コマンドが上書きされ、スクリプトのロード時にCtrl+ Alt+Enterがスクリプトのディレクトリに変更されます。

于 2015-02-27T00:03:17.900 に答える
2

これを機能させるために、ちょっとしたハックを使用しました。あなたの質問を理解できれば、IPython 環境の現在の作業ディレクトリを、アクティブなファイルが存在するディレクトリに設定する必要があります。したがって、D:/projects/file.py を編集している場合は、(IPython で) pwd() コマンドが D:/projects を返すようにする必要があります。これが、私のソリューションのハッキングされた部分の由来です。プロジェクトはすべて D ドライブにありますが、通常の Python インポートはすべて C ドライブのインストール場所から取得されます。したがって、次のようになります。

os.environ['PYTHONPATH'].split(os.pathsep)

私のアクティブなファイルのディレクトリであるDドライブにパスが1つだけあるリストが得られます(PyDevがPYTHONPATHに正しいディレクトリを含めるように設定しているため)。D ドライブを使用しない場合は、そのリスト内のどのパスがプロジェクトに関係するかを特定する別の方法が必要です (ドキュメントやマイ ドキュメントなど)。プロジェクト パスを一意に識別する方法がない場合、この回答は機能しません。しかし、「D:/」が一意の識別子として十分な単純なケースでは、これが設定のスタートアップ コードです ([ウィンドウ] > [設定] > [PyDev] > [インタラクティブ コンソール])。

import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
import os;os.chdir([p for p in os.environ['PYTHONPATH'].split(os.pathsep) if p.startswith("D")][0])
pwd()
于 2013-01-09T02:03:08.367 に答える