Virtualenv: Tkinter-在虚拟环境中失败

创建于 2011-03-14  ·  12评论  ·  资料来源: pypa/virtualenv

当共享全局环境的virtualenv站点包用于使用全局Tk的基于Tk的应用程序时。

Tkinter无法在virtualenv中正确初始化,因为它无法正确搜索其资源-这些资源仍在全局python环境中。

\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

我希望虚拟环境与全局环境一样工作:-

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>

经过一些实验,我发现将c:\ python26 \ tcl {tcl,tk} 8.5目录复制到c:\ venvtest \ Libs可以解决问题。


  • Bitbucket: https
  • 最初报道者:罗杰·甘曼斯(Roger Gammans)
  • 最初创建于:2010-05-12 22:45:58

最有用的评论

在virtualenv 15.0.1中仍然是一个问题。
... 只是在说'

所有12条评论

实际上,解决此问题的更好方法是将TCL_LIBRARY路径设置为
activate.bat或更改FixTk.py以了解有关virtualenv的信息。


Original Comment By: Roger Gammans

我也只是在activate.bat中设置环境变量TCL_LIBRARY路径。 因此,virtualenv所需要做的就是自动添加该行到activate.bat。

关于此问题,stackoverflow上也有一个线程:
http://stackoverflow.com/questions/15884075/tkinter-in-a-virtualenv

我还只是在activate.bat中设置了环境变量。 但是,如果这将自动完成,那就太好了。

在virtualenv 15.0.1中仍然是一个问题。
... 只是在说'

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 如果要保持打开状态,只需添加一条评论即可。 感谢您的贡献。

看起来还是个问题

由于此问题最近没有活动,因此已被自动标记为陈旧。 如果没有进一步的活动,它将关闭。 如果要保持打开状态,只需添加一条评论即可。 感谢您的贡献。

这仍然是一个问题。 我最近在Mac上遇到问题-https://github.com/pypa/virtualenv/issues/93的修复无法在Mac上解决此问题。

有人需要重新激活此问题。 仅仅因为它没有受到任何牵引就停了下来,这并不意味着它不再是一个问题。 这只是意味着项目维护者没有像他们应该的那样优先考虑它。

在Windows上,Python 2.7仍然是一个问题,但似乎在Python 3.8中使用venv模块已解决。

请随时提出新问题,并附上错误消息,复制说明以及有关如何安装Python的信息。

这只是意味着项目维护者没有像他们应该的那样优先考虑它。

考虑到项目维护者是没有薪水的,并且可以在他们的私人时间内免费获得,我不认为您可以谈论they should 。 如果您遇到此问题,请考虑在PR中填写修复程序。 所有代码都是开源的,免费提供给您。

此页面是否有帮助?
0 / 5 - 0 等级