仮想環境からインストールしたパッケージがあります。 pythonインタープリターを起動しただけの場合、そのパッケージは正常にインポートできます。ただし、Idleを起動した場合、そのパッケージはインポートできません(グローバルではなく、特定のvirtualenvでのみ使用できるため) 。virtualenvからすべてのパッケージを利用できるように、virtualenvからIdleを起動するにはどうすればよいですか?
Python 3.6+については、 下記のPaul Wickingの回答 を参照してください。
Pythonでは、IDLEは基本的に
from idlelib.PyShell import main
if __name__ == '__main__':
main()
したがって、デフォルトパッケージなしでvirtualenvをビルドしない限り、自分で起動できます。
python -m idlelib.idle
を実行しますこの答え から。
この答えは、Python 3。
いくつかの異なる仮想環境マネージャーがあり、それぞれの処理方法がわずかに異なりますpythonがインストールされ、どのように実行されるか この回答で詳しく説明されています 。
この回答は venv
モジュールが使用され、それが ドキュメントに従ってインストールされた であると想定しています。
注:一部のLinuxディストリビューションはvenvモジュールを別のパッケージにパッケージ化します: bunt および Debian
my_project-venv
フォルダー内からpython -m venv my_project-venv
を実行して仮想環境がmy_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
cmd
またはPowerShellが使用されているかどうかに応じて)activate.bat
またはActivate.ps1
スクリプトを実行することにより、仮想環境を開始できます :
:: 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
または 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
Windowsでは、Pythonこのようなコマンドラインから実行されるスクリプト_some_script.py
_は、他のPythonインタプリタで_python some_script.py
_コマンド(これはpy
ファイルの関連付けに依存します)この問題を回避したい場合は、コンテンツpython -c "from idlelib.PyShell import main; main()"
を含むバッチファイル_idle.bat
_を作成して配置するのが最善ですは、virtualenvのScripts
フォルダーにあります。また、他の指摘したように、アイドルはtcl
とtk
の両方のフォルダーが機能する必要があります。最も簡単な解決策は、virtualenvからbase 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
_
Python 3.6 最新化およびリファクタリングidlelib
。この変更には、いくつかのメソッドの名前の変更が含まれています。このため、idlelib.PyShell
はidlelib.pyshell
でアクセスする必要があります。次のスニペットは承認された回答に基づいており、Pythonバージョンで機能します。
#!/usr/bin/env python
"""Simple script to run Idle from a venv in PyCharm."""
try:
# Import for Python pre 3.6
from idlelib.PyShell import main
except ModuleNotFoundError:
# Import for Python version 3.6 and later
from idlelib.pyshell import main
if __name__ == '__main__':
main()
いくつかの回答をまとめると、完全に機能するバッチファイルを使用してWindowでこれを行う方法を次に示します。
VirtualenvのScriptsディレクトリにidle.batを作成します。 (存在しない限り)tclとtk(執筆時点ではバージョン8.5)への両方のリンクを作成し、virtualenvのLibディレクトリに配置すると、アイドル状態で起動します。このコードをコピーして、エディターに正確に貼り付けます。現在のvirtualenvのパス名を変更し、Python install(mineは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
@biomed私はWindowsを使っていて、これを試していました。私のpython2.6フォルダーで、python26/tcl/tcl8.5およびpython/tcl/tk8.5フォルダーをpython26/Libにコピーする必要があり、その後、virtualenvのスクリプトフォルダーに上記のスクリプトを作成しました。よく働きました。
buntu 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キーボードショートカットを使用してファイルを開くことができます。
私にとってはこのようなものを起動するだけでうまくいきます(Linuxターミナル):
source venv/bin/activate && python `which idle` &
(venvは明らかにvenvへのパスです)