67

仮想環境からインストールしたパッケージがあります。Python インタープリターを起動するだけで、そのパッケージを問題なくインポートできます。ただし、Idle を起動すると、そのパッケージはインポートできません (グローバルではなく特定の virtualenv でのみ使用できるため)。virtualenv から Idle を起動して、virtualenv のすべてのパッケージを利用できるようにするにはどうすればよいですか?

4

9 に答える 9

90

簡潔な答え

  1. 仮想環境を開始する
  2. 走るpython -m idlelib.idle

この回答から。

長い答え

この回答は Python 3 を想定しています。

この回答で詳しく説明されているように、いくつかの異なる仮想環境マネージャーがあり、それぞれが python がインストールされている場所と実行方法を処理する方法がわずかに異なります。

この回答は、venvモジュールが使用されており、 docs に従ってインストールされていることを前提としています。

注: 一部の Linux ディストリビューションでは、venv モジュールが別のパッケージにパッケージ化されています: UbuntuおよびDebian

仮想環境がフォルダー内からmy_project-venv実行して呼び出されたフォルダーにインストールされた場合、仮想環境はモジュールによって作成された新しいフォルダー内になります。python -m venv my_project-venvmy_project

my_project_dir
      │
      ┝━ my_project-venv

Windows では、Python 3.7.1 を使用して、my_project-venvフォルダー内のファイルはおそらく次のようになります。

my_project-venv
      │
      ┝━ Include
      ┝━ Lib
      ┝━ Scripts
      │     ┝━ ...
      │     ┝━ activate.bat
      │     ┝━ Activate.ps1
      │     ┝━ deactivate.bat
      │     ┕━ ...
      │
      ┕━ pyvenv.cfg

仮想環境は、または PowerShell が使用されているかどうかに応じて、activate.batまたはスクリプトを実行することで開始できます。Activate.ps1cmd

:: Using cmd.exe
cd my_project_dir
.\my_project-venv\Scripts\activate.bat
# Using PowerShell
cd my_project_dir
.\my_project-venv\Scripts\Activate.ps1

注: これらのスクリプトをダブルクリックして実行すると、シェルが開いたままになりません。シェルを起動し、上記のコマンドを入力して実行し、プロジェクトのフォルダー名を変更します

他のほとんどのオペレーティング システムでは、仮想環境フォルダーは次のようになります。

my_project-venv
      │
      ┝━ bin
      │     ┝━ ...
      │     ┝━ activate
      │     ┝━ activate.csh
      │     ┝━ activate.fish
      │     ┕━ ...
      │
      ┝━ include
      ┝━ lib
      ┝━ lib64
      ┕━ pyvenv.cfg

csh次に、 or fish以外のシェルから、次の方法で環境をアクティブ化します。

# Most operating systems
cd my_project_dir
. my_project-venv/bin/activate

cshおよびには、仮想環境をアクティブ化するためfishのシェル固有のスクリプト (それぞれactivate.cshおよびactivate.fish) があり、スクリプトのように実行できますactivate

仮想環境がすべてのオペレーティング システムでアクティブ化されたら、次のコマンドを実行すると IDLE が開始され、仮想環境にインストールされたパッケージにアクセスできます。

python -m idlelib.idle
于 2016-06-29T16:05:12.477 に答える
42

Python 3.6 以降については、以下の Paul Wicking の回答を参照してください。

3.6 より前の Python では、IDLE は本質的に

from idlelib.PyShell import main
if __name__ == '__main__':
  main()

したがって、デフォルトのパッケージなしで virtualenv をビルドしない限り、自分で起動できます。

于 2011-02-07T18:34:38.917 に答える
9

Windows では、このようなコマンド ラインから実行される Python スクリプトは、コマンドsome_script.pyを使用するときに使用されるものとは別の Python インタープリターによって実行される場合がありますpython some_script.py(ファイルの関連付けによって異なりpyます)。この問題を回避したい場合idle.batは、コンテンツpython -c "from idlelib.PyShell import main; main()"を含むバッチ ファイルを作成し、それをScriptsvirtualenv のフォルダーに配置することをお勧めします。また、他の人が指摘したように、アイドル状態で機能するにはtcltkフォルダーの両方が必要です。最も簡単な解決策は、virtualenv から基本のPython インストールへのシンボリック リンクを次のように作成することです。

(2.7) c:\python\virtualenv\2.7\Lib>mklink /d tcl8.5 "c:\Program Files\Python\2.7\tcl\tcl8.5"
symbolic link created for tcl8.5 <<===>> c:\Program Files\Python\2.7\tcl\tcl8.5
(2.7) c:\python\virtualenv\2.7\Lib>mklink /d tk8.5 "c:\Program Files\Python\2.7\tcl\tk8.5"
symbolic link created for tk8.5 <<===>> c:\Program Files\Python\2.7\tcl\tk8.5
于 2012-04-28T19:50:55.057 に答える
6

Ubuntu 15.04オペレーティング システムを使用しています。virtualenvを使用していくつかのパッケージをインストールしました。

したがって、これらのパッケージを含むvirtualenv内のファイルを実行するには、ターミナルで次のコマンドを使用します

(私の仮想環境の名前はvenv です):

#Activate the virtualenv venv
source venv/bin/activate

#To Run IDLE in virtualenv venv
python -m idlelib

IDLEを実行した後、ctrl+oキーボード ショートカットを使用してファイルを開くことができます。

于 2016-07-20T14:40:44.543 に答える
3

いくつかの回答をまとめると、完全に機能するバッチ ファイルを使用して Windows でこれを行う方法を次に示します。

virtualenv の Scripts ディレクトリに idle.bat を作成します。tcl と tk (執筆時点ではバージョン 8.5) への両方のリンクを (存在しない限り) 作成し、それらを virtualenv の Lib ディレクトリに配置すると、アイドル状態で起動します。このコードを正確にコピーしてエディターに貼り付けます。現在の virtualenv と Python インストールのパス名を変更し (私の場合は 2.7 の標準です)、Scripts/idle.bat に保存します。

IF EXIST C:\<path to current virtualenv>\Lib\tcl8.5 (
REM do nothing
) ELSE (
    mklink /d C:\<path to current virtualenv>\Lib\tcl8.5 "c:\Python27\tcl\tcl8.5"
)
IF EXIST C:\<path to current virtualenv>\Lib\tk8.5 (
REM do nothing
) ELSE (
    mklink /d C:\<path to current virtualenv>\Lib\tk8.5 "c:\Python27\tcl\tk8.5"
)

python -c "from idlelib.PyShell import main; main()"

Powershell (RUN AS ADMIN!) でスクリプトを実行して、アイドル状態で開きます。

cd c:\<path to current virtualenv>\
./Scripts/idle.bat
于 2014-09-10T19:31:39.450 に答える
2

@biomed私はWindowsを使用していて、これを試していました。python2.6フォルダーで、python26 / tcl/tcl8.5フォルダーとpython/tcl/tk8.5フォルダーをpython26/Libにコピーしてから、virtualenvのscriptsフォルダーに上記のスクリプトを作成しました。うまくいきました。

于 2011-05-05T14:28:15.110 に答える
1

私にとっては、このようなものを起動するだけで機能します(Linuxターミナル):

source venv/bin/activate && python `which idle` &

(venvは明らかにあなたのvenvへのパスです)

于 2015-09-14T12:40:01.977 に答える