35

virtualenv から TKinter ベースのウィジェットを使用して Python コードを実行しようとしています。

    user@computer:~/myproject$ env/bin/python Python
    2.7.3 (default, Sep 26 2012, 21:51:14)  [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.
    >>> import Tkinter 
Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
        raise ImportError, str(msg) + ', please install the python-tk package' ImportError: No module named _tkinter, please install the python-tk package

TK を virtualenv にインストールする適切な方法は何ですか?

4

9 に答える 9

46

スクリプトで環境変数 TCL_LIBRARY を設定しますactivate。Windows (Tcl 8.5 を使用する Python 2.7) では、次の行を に追加するだけScripts\activate.batです。

set "TCL_LIBRARY=C:\Python27\tcl\tcl8.5"

@Jasper van den Bosch の編集: Ubuntu では、スクリプトの変更activateは次のとおりです。

TK_LIBRARY=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib
TKPATH=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib 
TCL_LIBRARY=/usr/lib 
export TCL_LIBRARY TK_LIBRARY TKPATH

この参照は、askubuntu のこの質問にあります。

于 2013-04-10T22:36:07.557 に答える
19

tkinterはpython3をvirtualenvにsymlink tkinterフォルダーごとに統合することに成功しましたvirtualenv python3。私は私のために働いています。しかし、それが正しい方法かどうかはわかりません。

  1. tkinterをインストールする
sudo apt-get install python3-tk
  1. virtualenv の python lib フォルダーに移動します
cd ~/.virtualenvs/cv/lib/python3.4/
  1. tkinter をリンクする
ln -s /usr/lib/python3.4/tkinter tkinter

お役に立てれば。

それ以降のバージョンの python では、これにより

ModuleNotFoundError: No module named '_tkinter'

この場合、シンボリックリンク
/usr/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so
path/to/virtualenv/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so 使用するようにしてください

ln -s /usr/lib/python3.x/lib-dynload/_tkinter.cpython-36m-x86_64-linux-gnu.so _tkinter.cpython-36m-x86_64-linux-gnu.so

virtualenvlib/python3.x/lib-dynload/ディレクトリ内から。

于 2016-05-23T13:00:26.763 に答える
6

これは、Python 3.4 および Tcl 8.6 で使用するための A. Rodas からの優れた回答の更新です (コメントするのに十分な評判ポイントがありません)。

activate スクリプトで環境変数 TCL_LIBRARY を設定します。Windows (Tcl 8.6 を使用する Python 3.4) では、次の行を Scripts\activate.bat に追加するだけです。

set "TCL_LIBRARY=C:\Python34\tcl\tcl8.6"

仮想環境で Windows 7、Python 3.4、および ggplot を使用しているときに、この問題に遭遇しました。

于 2015-08-06T17:44:47.707 に答える
1

これを powershell で機能させるには、activate.bat の代わりに activate.ps1 ファイルを編集する必要があります。以下を activate.ps1 に追加するだけです。 $env:TCL_LIBRARY = "C:\Python27\tcl\tcl8.5"

于 2015-10-29T19:40:00.423 に答える
1

cpython プロジェクトのクローンを作成します

git clone git@github.com:python/cpython.git

cdcpython ディレクトリに移動します。 git checkout仮想環境の目的のバージョン(私にとっては3.4です)、およびそれをビルドします

./configure
make
make test
sudo make install

_tkinter.cpython-xxx.soディレクトリのサブディレクトリにso ファイルがあるのでbuild/、それを venv のディレクトリにコピーしますlib-dynload。(私にとってはそうです~/tf1.1py3.4/lib/python3.4/lib-dynload/

于 2018-11-01T14:27:46.970 に答える