In some case, path to Tcl/Tk (and Tix) library might be given explicitly under virtualenv.
activate.bat:
@echo off set "VIRTUAL_ENV=C:\Users\aoki\work\marlowe_ui" if defined _OLD_VIRTUAL_PROMPT ( set "PROMPT=%_OLD_VIRTUAL_PROMPT%" ) else ( if not defined PROMPT ( set "PROMPT=$P$G" ) set "_OLD_VIRTUAL_PROMPT=%PROMPT%" ) set "PROMPT=(marlowe_ui) %PROMPT%" if not defined _OLD_VIRTUAL_PYTHONHOME ( set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%" ) set PYTHONHOME= rem PYTHONPATH if not defined _OLD_VIRTUAL_PYTHONPATH ( set "_OLD_VIRTUAL_PYTHONPATH=%PYTHONPATH%" ) set PYTHONPATH= rem tcl/tk environment if not defined _OLD_VIRTUAL_TCL_LIBRARY ( set "_OLD_VIRTUAL_TCL_LIBRARY=%TCL_LIBRARY%" ) set "TCL_LIBRARY=c:\opt\python33\tcl\tcl8.5" if not defined _OLD_VIRTUAL_TK_LIBRARY ( set "_OLD_VIRTUAL_TK_LIBRARY=%TCL_LIBRARY%" ) set "TK_LIBRARY=c:\opt\python33\tcl\tcl8.5" if defined _OLD_VIRTUAL_PATH ( set "PATH=%_OLD_VIRTUAL_PATH%" ) else ( set "_OLD_VIRTUAL_PATH=%PATH%" ) set "PATH=%VIRTUAL_ENV%\Scripts;%PATH%" :END
deactivate.bat:
@echo off if defined _OLD_VIRTUAL_PROMPT ( set "PROMPT=%_OLD_VIRTUAL_PROMPT%" set _OLD_VIRTUAL_PROMPT= ) if defined _OLD_VIRTUAL_PYTHONHOME ( set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" set _OLD_VIRTUAL_PYTHONHOME= ) rem PYTHONPATH if defined _OLD_VIRTUAL_PYTHONPATH ( set "PYTHONPATH=%_OLD_VIRTUAL_PYTHONPATH%" set _OLD_VIRTUAL_PYTHONPATH= ) rem tcl/tk environment set TCL_LIBRARY= if defined _OLD_VIRTUAL_TCL_LIBRARY ( set "TCL_LIBRARY=%_OLD_VIRTUAL_TCL_LIBRARY%" set _OLD_VIRTUAL_TCL_LIBRARY= ) set TK_LIBRARY= if defined _OLD_VIRTUAL_TK_LIBRARY ( set "TK_LIBRARY=%_OLD_VIRTUAL_TK_LIBRARY%" set _OLD_VIRTUAL_TK_LIBRARY= ) if defined _OLD_VIRTUAL_PATH ( set "PATH=%_OLD_VIRTUAL_PATH%" set _OLD_VIRTUAL_PATH= ) :END
In usual case, the extension '.py' is not associated with the python.exe under virtual environment but with original one.
to confirm,
> assoc .py .py=Python.File > ftype | findstr -i Python Python.CompiledFile="C:\windows\py.exe" "%1" %* Python.File="C:\windows\py.exe" "%1" %* Python.NoConFile="C:\windows\pyw.exe" "%1" %*
(about py.exe please refer https://docs.python.org/dev/using/windows.html#python-launcher-for-windows) Therefore, mui.py should be run in the form of 'python (path to mui.py)mui.py' or 'python -m marlowe_ui.gui_root'