Windows でtoxをセットアップして、複数の Python インストールに対してテストを実行しようとしています。C:\Python\PythonXX_YY
という名前のフォルダーに各 python をインストールしました。XX
これは python バージョン (例: 27) でYY
、32 または 64 のいずれかです。現在、C:\Python\Python33_64
新しい python ランチャーを使用して必要なバージョンを実行しているため、私の PATH にある python は のみです。このバージョンからtoxも実行しています。
最初の問題は、おそらくデフォルトの場所にないため、tox がこれらのインストールを検出しないことです。環境ごとに tox.ini でパスを設定することでこれを回避できますが、設定が自分のコンピューターに非常に固有のものになります。私のpythonがグローバルにどこにあるかをtoxに知らせるより良い方法はありますか?
2 番目の問題は、tox.ini で Python の場所を設定すると、実行時に次のエラーが発生することです (Python27 の場合)。
Traceback (most recent call last):
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 2557, in <module>
main()
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 961, in main
never_download=options.never_download)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1062, in create_environment
site_packages=site_packages, clear=clear))
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1255, in install_python
copy_required_modules(home_dir)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1193, in copy_required_modules
dst_filename = change_prefix(filename, dst_prefix)
File "c:\Python\Python33_64\lib\site-packages\virtualenv.py", line 1164, in change_prefix
(filename, prefixes)
AssertionError: Filename c:\Python\Python33_64\lib\site-packages\readline.py does not start with any of these prefixes: ['c:\\python\\python27_64']
ERROR: InvocationError: c:\python\python27_64\python.exe c:\Python\Python33_64\lib\site-packages\virtualenv.py --distribute py27 (see C:\Users\david.townshend\Documents\Global\Programming\norman\.tox\py27\log\py27-0.log)
Python3.3 から Python2.7 のものをインストールしようとしているように見えますが、これまで virtualenv を実際に使用したことがないため、このエラーを誤解している可能性があります。
これに対する解決策が何であるかはわかりませんが、明白な解決策は、tox が python ランチャーを使用して必要な python バージョンを取得することであるように思われます。これを行う方法はありますか?