私は独特の状況に直面しています。少し些細なことですが、苦痛です。
NLTKはPython 3(これが私が収集できるもの)に移植されていないため、Python 2.6.6を使用する必要があります。
別のコード(同時に動作している)には、Python 3でのみ使用可能で、Python 2.6.6では使用できない)コレクションカウンター関数があります。
したがって、2つのコードを切り替えるたびに、バージョンをインストールおよびアンインストールする必要があります。それはとても時間の無駄です。
使用したいバージョンを指定する方法について何か提案はありますか?
インストールPython
Python3.3以降ではpy.exe
Windowsフォルダに。 [ link ]この実行可能ファイルは、ファイルの最初の行でpythonバージョンを決定するために使用されます:
#!/usr/bin/python2.7
Python 2.7で実行されます。他のPythonバージョンをインストールした後、Python 3バージョンをインストールする必要があります。
追加のリソース: https://docs.python.org/3/using/windows.html#customization
pywinhttps://pypi.python.org/pypi/pywin
古い解決策
私はあなたが窓を使うと思います。私はこの問題をハックで解決しました:
Windowsでpythonを開始するたびに、python.batが使用されます。これにより、ファイルのヘッダーを分析するpython.pyが開始されます#! for the = pythonバージョン。
Example.pyを開始するには、コンソールに入力します
python example.py
ただし、klickごとに開始することもできます。
これは私のpythonファイルC:\ bin\python.py
#!/usr/bin/env python2
import sys
import os
args = sys.argv
if len(args) <= 1:
# no arguments
# start python console
i = os.system('C:\bin\python2.bat' + " ".join(args[1:]))
if type(i) != int:
i = 0
exit(i)
def analyse(filename, default = ''):
'''=> '2', '3', default '''
try:
f = open(filename)
except IOError:
# file not found
return default
firstLine = f.readline()
if firstLine.startswith('#!'):
if 'python2' in firstLine:
return '2'
if 'python3' in firstLine:
return '3'
i = firstLine.find(' ')
if i != -1:
# analyse from end of path on
in2 = '2' in firstLine[i:]
in3 = '3' in firstLine[i:]
if in2 and not in3:
return '2'
if in3 and not in2:
return '3'
else:
# analyse path
in2 = '2' in firstLine
in3 = '3' in firstLine
if in2 and not in3:
return '2'
if in3 and not in2:
return '3'
return default
no = analyse(args[1], default = '2')
if args[1][-1:] == 'w':
# python win
cmd = 'C:\bin\pythonw%s.bat'
else:
cmd = 'C:\bin\python%s.bat'
i = os.system(cmd % no + ' ' + " ".join(args[1:]))
if type(i) != int:
i = 0
exit(i)
これはC:\ bin\python.batファイルです
@echo off
C:\bin\python2 C:\bin\python.py %*
rem this may also work:
rem C:\bin\python.py %*
そして、あなたが始めるすべてのファイルにあなたはどちらかを入れなければなりません
#!/bin/env/python3
または
#!/bin/env/python2
デフォルトはpython2です
次に、これらのファイルをフォルダーに追加しました。
C:\ bin\python2.bat
@echo off
C:\python27\python.exe %*
C:\ bin\pythonw2.bat
@echo off
C:\python27\pythonw.exe %*
C:\ python3.bat
@echo off
C:\python32\pythonw.exe %*
C:\ bin\pythonw3.bat
@echo off
C:\python32\pythonw.exe %*
代わりにpython26を使用している場合、python27の場合は、変更する必要があります
C:\python27
に
C:\python26
等々。 python not using python 32。
python files per klick)を開始することもできます
次に、これを行います。
.pyファイルを右クリック->で開く-> C:\ bin\python.batを選択
問題が発生した場合は、私に連絡するか、コメントを残してください。
複数のバージョンを別々のディレクトリにインストールするだけで、使用したいpythonバージョンでPythonプログラムを実行します。次のようになります:
C:\Python26\Python.exe thescript.py
または類似。
Virtualenvが行うことは、同じpython versionの多くの個別の「仮想」インストールを提供することです。これは完全に異なる問題であるため、とにかく。
Windowsを使用している場合、PowerShellの使用を嫌がらない場合は、他の回答で説明されているように、python 2と3を別々にインストールできます。次に、次のようにします。
Set-Alias python27 [some path]\python27\python.exe
Set-Alias python33 [some path]\python33\python.exe
各バージョンを実行するためのエイリアスを作成します。
エイリアスの保持については、次のリンクで説明されています: https://msdn.Microsoft.com/en-us/powershell/reference/5.1/Microsoft.powershell.core/about/about_aliases#saving-aliases
そのリンクで作成するプロファイルを正常にロードするには、実行ポリシーを変更する必要がある場合があります。
Set-ExecutionPolicy RemoteSigned
トリックを行う必要がありますが、実行ポリシーについて詳しく知りたい場合は、次のリンクをたどることができます: https://msdn.Microsoft.com/en-us/powershell/reference/5.1/Microsoft.powershell .core/about/about_execution_policies
Virtualenvを使用すると、動的なpython環境を作成できます。Pythonのページをここで確認してください。
http://pypi.python.org/pypi/virtualenv
(システム全体ではなく)Windowsのvirtualenv内にパッケージをインストールすることに関する関連する回答済みの質問 Python Windowsパッケージをvirtualenvsにインストールできますか?
Pythonbrew を使用すると、インストールが非常に簡単になり、非常に簡単にインストールして切り替えたり、異なるpythonバージョンを安全に一時的に使用したりできます。
Pythonbrewがインストールされたら:
#to install new python versions is as simple as:
pythonbrew install 2.7.2 3.2
#to use a particular version in the current Shell:
pythonbrew use 3.2
#to uninstall:
pythonbrew uninstall 2.7.2
virtualenv を調べる必要があります。 pip
とfabric
について説明している this ブログ投稿から、それについて知りました。これもPython =開発者。
このページには、Python 2.6:で機能するcollections.Counter
の実装があります。
これがあなたが望むものかどうかはわかりませんが、私は長い間これと一緒に暮らしていました http://www.portablepython.com/
特にNLTKにpy3.xポートがあるため、OPリクエストは少し古くなっています。 tar.gzダウンロードを使用してUbuntu13.10にnltk3.0をインストールする を参照してください。
Python3をNLTKで動作させる方法は次のとおりです。
$ Sudo apt-get install python3-pip
$ Sudo pip3 install pyyaml
$ wget http://www.nltk.org/nltk3-alpha/nltk-3.0a3.tar.gz
$ tar -xzvf nltk-3.0a3.tar.gz
$ cd nltk-3.0a3/
$ Sudo python3 setup.py install
$ python3
>>> import nltk
>>> from nltk.corpus import brown
>>> print(brown.sents()[0])
['The', 'Fulton', 'County', 'Grand', 'Jury', 'said', 'Friday', 'an', 'investigation', 'of', "Atlanta's", 'recent', 'primary', 'election', 'produced', '``', 'no', 'evidence', "''", 'that', 'any', 'irregularities', 'took', 'place', '.']
私のマシン(Windows)では少なくとも3つまたは4つのバージョンのPythonを使用しています。 http://python.org/ のインストーラーは自動的にそれらを次の場所に配置しました:
c:\Python26
c:\Python27
c:\Python32
そして
c:\Python24
1台のマシンで。私は主にPython 2.7を使用します。これは、一部のアプリケーションがwxPythonを使用し、古いコンソールコードにも使用するためです。このpython.exe
の名前は変更されていません。ちなみに、Python2.7はcollections.Counter
もサポートしています。
c:\Python26
とc:\Python24
は私のPATHに含まれていません。 c:\Python32\
で、exeの名前がpy.exeに変更されました。このようにして、python some.py
はPython 2.7を開始し、py another.py
はPython 3.2を開始します。
Linuxのようにシェルについて話している場合、python 3をインストールすると、python3
コマンドを使用して個別に呼び出すことができます。Python = 2は、python
を使用して呼び出されます。
少なくともこれはUbuntuのようなシステムでの私の経験であり、他のLinux環境を使用したことはありません。
この質問はほぼ1年前のものですが、NLTKはPython 3に移植されています(または、少なくともこれを書いている時点ではそうです)。
WinPython 、Windows用の優れたポータブル/インストール可能pythonディストリビューション)をご覧ください。
Portable:事前構成済みで、Windowsの任意のマシンで(要件なしで)すぐに実行でき、WinPythonを含むフォルダーは任意の場所に移動できます(ローカル、ネットワーク、またはリムーバブルドライブ)ほとんどのアプリケーション設定
Flexible:必要な数のWinPythonバージョンをインストールできます(または「use」と書く必要があります)(分離された自己矛盾のない環境など) 、それらのバージョンが同じマシン上で異なるバージョンのPython(2.7、3.3)または異なるアーキテクチャ(32ビットまたは64ビット)を実行している場合でも
また、システムのデフォルトバージョンとして特定のpythonバージョンを簡単に登録および登録解除できます。
ただし、ポータブルとして機能している場合でも、python実行可能ファイルのショートカットを作成して、パスのどこかに配置できます。異なるバージョンのショートカットに異なる名前を付けるだけです。次に、次を使用できます。
python_3_64bit_shortcut your_program.py
Shebang行で必要なバージョンを指定できます。 VM私の運用担当者がセットアップしたPython 2.6が/usr/bin/python2.6にあり、2.7が必要だったときにこれに遭遇しました。いくつかの機能。彼はそれを/usr/bin/python2.7にインストールしてくれました。
私の古いシバン:
#!/usr/bin/env python
/ usr/bin/pythonが/usr/bin/python2.6へのリンクであったため、動作を停止しました。問題を修正し、Windows、Linux、OSXで作業した結果、Shebangは次のように変更されました。
#!/usr/bin/env python2.7
どのバージョンでも機能するはずだと私は信じています。
python distributable:でインストールされるpyランチャーを使用できます。
py -2 # default python 2
py -2.7 # specifically python 2.7
py -3 # default python 3
py -3.7 # specifically python 3.7
特定のバージョンでスクリプトを実行する必要がある場合は、次のようにすることができます。
py -3.7 my_script.py