Virtualenv: Tkinter - gagal di env virtual

Dibuat pada 14 Mar 2011  ·  12Komentar  ·  Sumber: pypa/virtualenv

Ketika virtualenv yang berbagi paket situs lingkungan global digunakan untuk aplikasi berbasis Tk menggunakan Tk global.

Tkinter tidak dapat menginisialisasi dengan benar di virtualenv karena gagal mencari sumber dayanya dengan benar - yang masih berada di lingkungan python global.

\Documents and Settings\Roger\Desktop\windows-install-bits>cd \venvtest

C:\venvtest>Scripts\activate.bat
(venvtest) C:\venvtest>python
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>> f= Tk()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Tk' is not defined
>>> f= Tkinter.Tk()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "c:\Python26\Lib\lib-tk\Tkinter.py", line 1643, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, want
objects, useTk, sync, use)
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
    c:/Python26/lib/tcl8.5 c:/venvtest/lib/tcl8.5 c:/lib/tcl8.5 c:/venvtest/libr
ary c:/library c:/tcl8.5.2/library c:/tcl8.5.2/library



This probably means that Tcl wasn't installed properly.

>>> ^Z


(venvtest) C:\venvtest>deactivate

Apa yang saya harapkan adalah env virtual berfungsi sama dengan lingkungan global seperti: -

C:\venvtest>c:\Python26\python.exe
Python 2.6.5 (r265:79096, Mar 19 2010, 21:48:26) [MSC v.1500 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tkinter
>>> f = Tkinter.Tk()
>>> ^Z


C:\venvtest>

Setelah beberapa percobaan, saya menemukan bahwa menyalin c: \ python26 \ tcl {tcl, tk} 8.5 direktori ke dalam c: \ venvtest \ Libs menyelesaikan masalah.


bug

Komentar yang paling membantu

Masih masalah di virtualenv 15.0.1.
... katakan saja

Semua 12 komentar

Sebenarnya cara yang lebih baik untuk memperbaikinya adalah dengan menyetel jalur TCL_LIBRARY di
active.bat, atau ubah FixTk.py untuk mengetahui tentang virtualenv's.


Original Comment By: Roger Gammans

Saya juga hanya mengatur jalur TCL_LIBRARY variabel lingkungan di activ.bat. Jadi semua yang perlu dilakukan virtualenv adalah menambahkan baris itu untuk mengaktifkan.bat secara otomatis.

Ada utas tentang stackoverflow tentang masalah ini juga:
http://stackoverflow.com/questions/15884075/tkinter-in-a-virtualenv

Saya juga baru saja mengatur variabel lingkungan di activ.bat. Namun akan lebih bagus jika ini dilakukan secara otomatis.

Masih masalah di virtualenv 15.0.1.
... katakan saja

Masalah ini secara otomatis ditandai sebagai usang karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut. Cukup tambahkan komentar jika Anda ingin tetap membukanya. Terima kasih atas kontribusi Anda.

Sepertinya masih ada masalah

Masalah ini secara otomatis ditandai sebagai usang karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut. Cukup tambahkan komentar jika Anda ingin tetap membukanya. Terima kasih atas kontribusi Anda.

Ini masih menjadi masalah. Saya memukulnya paling baru di Mac - perbaikan untuk https://github.com/pypa/virtualenv/issues/93 tidak menyelesaikan masalah di Mac.

Seseorang perlu mengaktifkan kembali masalah ini. Hanya karena telah duduk tanpa mendapatkan daya tarik apa pun, itu tidak berarti itu tidak lagi menjadi masalah. Itu hanya berarti pengelola proyek belum memprioritaskannya seperti yang seharusnya.

Di Windows, masih masalah dengan Python 2.7 tetapi tampaknya diselesaikan dengan Python 3.8 dengan modul venv .

Silakan mengajukan masalah baru, dengan pesan kesalahan, instruksi reproduksi dan informasi tentang bagaimana Anda menginstal Python.

Itu hanya berarti pengelola proyek belum memprioritaskannya seperti yang seharusnya.

Mengingat pengelola proyek tidak dibayar, dan melakukannya secara gratis di waktu pribadi mereka, saya tidak yakin Anda dapat berbicara tentang they should . Jika masalah ini menjadi masalah Anda, pertimbangkan untuk mengisi PR dengan perbaikan. Semua kode adalah sumber terbuka dan tersedia gratis untuk Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat