Windowsを実行していますが、コマンドラインでプログラムを実行すると、Shell/OSはレジストリ設定に基づいてPythonを自動的に実行します。同じマシンにPythonの2.xおよび3.xバージョンをインストールすると、これは壊れますか?
同じマシンで2.xスクリプトを実行しながら、Python 3で遊びたい。
共存の公式ソリューションは Windows用Pythonランチャー 、 Python 3.3. に含まれていたPEP 397のようです。リリースダンプをpy.exe
およびpyw.exe
ランチャーを%SYSTEMROOT%
(C:\Windows
)にインストールすると、それぞれpy
およびpyw
スクリプトに関連付けられます。
(独自の関連付けを手動で設定せずに)新しいランチャーを使用するには、「拡張機能の登録」オプションを有効のままにします。理由はよくわかりませんが、私のマシンではPy 2.7が(ランチャーの) "デフォルト"のままでした。
コマンドラインからスクリプトを直接呼び出してスクリプトを実行すると、ランチャーを介してルーティングされ、Shebang(存在する場合)が解析されます。ランチャーを明示的に呼び出してスイッチを使用することもできます:py -3 mypy2script.py
。
あらゆる種類のシバンが機能するようです
#!C:\Python33\python.exe
#!python3
#!/usr/bin/env python3
同様に不当な虐待
#! notepad.exe
私のセットアップは次のとおりです。
C:\Python34
(デフォルトのインストールパス)に移動し、python.exeをpython3.exeに変更しますC:\Python27\;C:\Python27\Scripts\;C:\Python34\;C:\Python34\Scripts\;
これで、コマンドラインで2.7にpython
を、3.4にpython3
を使用できます。
両方をインストールできます。
スクリプトの前にこれを書くべきです:
#!/bin/env python2.7
または、最終的に...
#!/bin/env python3.6
Google をすばやく検索した後、私のソリューションはUnixで完全に動作します。Windowsソリューションは次のとおりです。
#!c:/Python/python3_6.exe -u
同じこと:スクリプトの前。
バージョン3.3からPythonはLauncher for Windowsユーティリティを導入しました https://docs.python.org/3/using/windows.html#python-launcher-for-windows 。
したがって、複数のバージョンのPythonを使用できるようにするには:
私は、シェルの2.5、2.6、および3.0を次の形式の1行のバッチスクリプトで使用しています。
:: The @ symbol at the start turns off the Prompt from displaying the command.
:: The % represents an argument, while the * means all of them.
@c:\programs\pythonX.Y\python.exe %*
それらにpythonX.Y.bat
と名前を付け、PATHのどこかに配置します。優先マイナーバージョン(つまり、最新)のファイルをpythonX.bat
にコピーします。 (例:copy python2.6.bat python2.bat
)。その後、どこからでもpython2 file.py
を使用できます。
ただし、これはWindowsファイルの関連付けの状況を助けたり、影響を与えたりすることさえありません。そのためには、#!
行を読み取り、それを.pyおよび.pywファイルに関連付けるランチャープログラムが必要です。
どうぞ...
winpylaunch.py
#
# Looks for a directive in the form: #! C:\Python30\python.exe
# The directive must start with #! and contain ".exe".
# This will be assumed to be the correct python interpreter to
# use to run the script ON WINDOWS. If no interpreter is
# found then the script will be run with 'python.exe'.
# ie: whatever one is found on the path.
# For example, in a script which is saved as utf-8 and which
# runs on Linux and Windows and uses the Python 2.6 interpreter...
#
# #!/usr/bin/python
# #!C:\Python26\python.exe
# # -*- coding: utf-8 -*-
#
# When run on Linux, Linux uses the /usr/bin/python. When run
# on Windows using winpylaunch.py it uses C:\Python26\python.exe.
#
# To set up the association add this to the registry...
#
# HKEY_CLASSES_ROOT\Python.File\Shell\open\command
# (Default) REG_SZ = "C:\Python30\python.exe" S:\usr\bin\winpylaunch.py "%1" %*
#
# NOTE: winpylaunch.py itself works with either 2.6 and 3.0. Once
# this entry has been added python files can be run on the
# commandline and the use of winpylaunch.py will be transparent.
#
import subprocess
import sys
USAGE = """
USAGE: winpylaunch.py <script.py> [arg1] [arg2...]
"""
if __== "__main__":
if len(sys.argv) > 1:
script = sys.argv[1]
args = sys.argv[2:]
if script.endswith(".py"):
interpreter = "python.exe" # Default to wherever it is found on the path.
lines = open(script).readlines()
for line in lines:
if line.startswith("#!") and line.find(".exe") != -1:
interpreter = line[2:].strip()
break
process = subprocess.Popen([interpreter] + [script] + args)
process.wait()
sys.exit()
print(USAGE)
私はちょうどこのスレッドを読んでこれをノックしました(私も必要としていたからです)。 UbuntuとWindowsの両方にPython 2.6.1と3.0.1があります。うまくいかない場合は、ここに修正を投稿してください。
私の知る限り、Pythonはレジストリ設定ではなくPATH変数を使用してコマンドラインから実行されます。
そのため、PATHで正しいバージョンを指す場合は、それを使用します。新しいPATH設定を使用するには、コマンドプロンプトを忘れずに再起動してください。
Pythonインストールは通常、.py
、.pyw
、および.pyc
ファイルをPythonインタープリターに関連付けます。そのため、エクスプローラでダブルクリックするか、コマンドラインウィンドウに名前を入力することにより、Pythonスクリプトを実行できます(したがって、python scriptname.py
と入力するだけで、scriptname.py
と入力する必要はありません)しましょう)。
この関連付けを手動で変更する場合は、Windowsレジストリで次のキーを編集できます。
HKEY_CLASSES_ROOT\Python.File\Shell\open\command
HKEY_CLASSES_ROOT\Python.NoConFile\Shell\open\command
HKEY_CLASSES_ROOT\Python.CompiledFile\Shell\open\command
人々はWindowsのPythonランチャーに取り組んでいます:.py
および.pyw
ファイルに関連する軽量プログラムで、「Shebang」行を探します(Linuxなどに類似)最初の行で、必要に応じてPython 2.xまたは3.xを起動します。詳細については "A Python Windows用ランチャー" ブログ投稿をご覧ください。
Anacondaを使用してみてください。
Anaconda環境の概念を使用して、プログラミングを学習するにはPython 3が必要ですが、Pythonを更新してPython 2.7環境を一掃したくないとしましょう。 「snakes」(または必要なもの)という名前の新しい環境を作成してアクティブ化し、次のようにPython 3の最新バージョンをインストールできます。
conda create --name snakes python=3
見た目よりも簡単なので、ここの紹介ページをご覧ください: Getting Started with Anaconda
そして、バージョン2.xと3.xを並べて実行するという特定の問題に対処するには、以下を参照してください: Manacing Python Versions with Anaconda
の Windows用のPythonランチャー スタンドアロンのみが最初にデビューした2011年に約束されたように、バージョン3.3以降、Pythonに組み込まれました。
勇気を持って両方を同時にインストールする前に、非常に多くの質問がありました。 pythonを指定すると、py2が必要なときにpy3に移動しますか? pip/virtualenvはpy2/3で発生しますか?
今では非常に単純なようです。
両方を盲目的にインストールするだけです。正しいタイプ(x64/x32)を取得してください。インストール中/インストール後、 環境変数 へのパスに必ず追加してください。
[ENVIRONMENT]::SETENVIRONMENTVARIABLE("PATH", "$ENV:PATH;C:\PYTHONx", "USER")
上記のコマンドのxを置き換えてパスを設定します。
次に、両方のフォルダーに移動します。
案内する
python3.6/Scripts/
pipの名前をpip3に変更します。
Pip3が既に存在する場合、pipを削除します。これにより、pipのみがpython2の下で実行されるようになります。次の方法で確認できます。
pip --version
python3でpipを使用する場合は、
pip3 install
同様にpythonファイルなどに同じことができます。
乾杯!
PATH環境変数に両方のpython.exeファイル(日々スクリプトを実行するために現在使用しているものを追加する)が含まれていないことを確認するか、Knihtがバッチファイルで提案したとおりにする必要があります。それを除けば、なぜそうではないのか分からない。
追記:2.6が"primary" pythonとして、3.0が"play" pythonとしてインストールされています。 2.6はPATHに含まれています。すべてが正常に動作します。
インストーラーで.pyファイルのWindowsファイルの関連付けをセットアップするオプションがあると思います。チェックを外すと大丈夫です。
そうでない場合は、.pyファイルを以前のバージョンに簡単に再関連付けできます。最も簡単な方法は、.pyファイルを右クリックし、「プログラムから開く」/「プログラムを選択」を選択することです。表示されるダイアログで、デフォルトで使用するpythonのバージョンを選択または参照し、[常にこのプログラムを使用してこの種類のファイルを開く]チェックボックスをオンにします。
うーん.. https://www.python.org/downloads/release/python-365/ でWindows用のPython 3.6.5をダウンロードするだけで今すぐこれをやったランチャーがインストールされることを確認しました。次に、python 2およびpythonを使用するための指示に従いました。コマンドプロンプトを再起動し、py -2.7
を使用してPython 2およびpy
を使用しますまたはPythonを使用するpy -3.6
3. Python 2のpip
にpip2
を使用し、Python 3のpip
にpip
を使用することもできます。
私は今pythonから始めています。私はPythonバージョン2.xを必要とするZ_Shawの本「Learn python the Hard Way」を読んでいますが、python 3。バツ
だからここに私がやったことがあります。
「[環境] :: SETENVIRONMENTVARIABLE( "パス"、 "$ ENV:PATH; C:\ PYTHON27"、 "ユーザー")」(外部引用符なし)
NOW for python 3.x
シンプル、python 3.xダウンロードには、Windowsアプリ用のpythonが付属しています。 SO単にWindowsアプリのPythonをタスクバーに固定するか、デスクトップへのショートカットを作成して完了です!
3.xのWindowsのPythonを開きます
python 2.xのPowershellを開きます
これがお役に立てば幸いです!
そうだと思いますが、同じコンピューターにPython 2.4、2.5、2.6をサイドバイサイドでインストールしています。