1

a) Python 2.5 を選択すると問題なく動作するコードがありますが、Python 2.7 を使用するとエラーが発生します。デフォルトのプログラムとしてpython 2.5を選択することで、Windowsの問題を簡単に修正しました。しかし、cmd はこの変更に追随していないようです。どうすればこれを修正できますか?

b) python.exe と pythonw.exe を使用したスクリプトの実行の違いは何ですか? pythonw.exeを使用すると、ポップアウトして消えるcmdウィンドウが表示されないことをどこかで読みました。しかし、私の場合、これは正しくなく、実際には cmd ウィンドウが表示されます。また、python.exe を使用すると、スクリプトを実行するとエラーが発生しますが、pythonw.exe を使用するとエラーが発生しません。

4

3 に答える 3

0

virtualenv と virtualenvwrapper プログラムを使用できます。virtualenv を使用すると、選択した python 環境を選択できます。

たとえば、Python 2.7 で「App A」を実行したい場合は、virtualenv で実行できます (Debian の例)。

パッケージをインストールする

apt-get update
apt-get install python-pip git 
pip install virtualenv virtualenvwrapper

virtualenvwrapper の構成

cat << EOF >> ~/.bashrc
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
EOF
source ~/.bashrc

アプリ A の環境を準備する

mkvirtualenv --no-site-packages -p /usr/bin/python2.7 app_a
add2virtualenv /opt/app_a

あなたのアプリを実行します

workon app_a
yourscrypt.py

また

$HOME/.virtualenvs/app_a/bin/python yourscript.py
于 2013-11-07T18:09:45.397 に答える
0

異なる Python バージョン間で簡単に切り替える通常の方法は、virtualenv を使用することです。ただし、あなたの場合、.py 拡張子のファイルの関連付けを変更しました。しかし、PATH環境変数を変更していません。したがって、.py ファイルをダブルクリックすると、目的の Python バージョンが取得されます。python script.pyしかし、コマンド ラインで実行すると、PATH変数が検索PATHに使用され、システムは間違ったものを検索します。PATH変数を変更することで解決できます。しかし、virtualenvの方が良いでしょう!

pythonw.exe と python.exe の違いは? 前者は WINDOWS サブシステムを対象とし、後者は CONSOLE サブシステムを対象としています。通常、GUI プログラムには前者を使用し、コンソール プログラムには後者を使用します。サブシステムの詳細については、MSDN: /SUBSYSTEMを参照してください。

Python のドキュメントでも、Python の観点からこのトピックを取り上げています。

Python スクリプト (拡張子が .py のファイル) は、デフォルトで python.exe によって実行されます。この実行可能ファイルは、プログラムが GUI を使用している場合でも開いたままのターミナルを開きます。これが発生したくない場合は、拡張子 .pyw を使用してください。これにより、デフォルトでスクリプトが pythonw.exe によって実行されます (両方の実行可能ファイルは、Python インストール ディレクトリの最上位にあります)。これにより、起動時にターミナル ウィンドウが表示されなくなります。

pythonw を実行したときにコンソール ウィンドウが表示される場合は、既存のコンソール ウィンドウから開始しているか、プログラムがコンソール ウィンドウを作成しています。pythonw ではなく python で実行するとプログラムが失敗するのはなぜですか? 知らない。あなたはあなたのプログラムやエラーを表示しませんでした.私の水晶玉は現在修理中です! ;-)


以上のことをすべて述べ、あなたが尋ねた質問に答えようとしましたが、あなたの問題に正しい方法で取り組んでいるとは思えません。Python 2.7 で動作するようにコードを修正するのが正しい解決策のように思えます。

于 2013-11-07T18:13:21.623 に答える