我在使用python解释器从ac可执行文件中获取tcl时遇到了一些问题。由于某种原因,它无法加载<fullpath>Tix843.dll。但是当直接运行python代码(从python)时,它确实可以工作。dll的路径/名称是正确的...使用依赖项遍历器,我只能看到Tkinter尝试加载tix dll,但找不到它...跟踪tcl中的所有路径后,我只能检测到1个差异:nameofexecutable。直接从python运行时,这是到的路径,python.exe但是从我的c可执行文件运行时,它(显然)是path/name of the executable。在tcl / tk中,我注意到nameofexecutable用来设置很多路径,因此我认为这会引起我的问题。我试图防止此问题的事情:将dll的路径添加到系统路径将dll的路径添加到$auto_path->不变argv[0]在调用PySys_SetArgv之前设置c可执行文件的->不变我是在做一些愚蠢的事情还是该如何设置nameofexecutable?还有其他方法可以解决此问题。
2 回答
慕的地6264312
TA贡献1817条经验 获得超6个赞
该nameofexecutable
属性是在Tcl库初始化期间设置的(该参数源自Tcl_FindExecutable()
我不知道该调用的确切方式,但绝对是:它用于执行各种操作)。您无法在其他任何位置进行设置。但是,Tcl实际上并没有大量使用您无法覆盖的值。
相反,您应该研究将TCLLIBPATH
环境变量设置为目录的Tcl列表以在其中搜索包定义。或者您可以auto_path
在Tcl(带有lappend auto_path
)中的全局变量中添加目录,其中包含要查看的实际位置列表(嗯,它实际上也在该变量中列出的位置的直接子目录中查找)。当然,这必须在尝试加载Tix之前完成。
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
C程序很可能找不到Tix.dll,因为它不在您的路径中。Python可以找到它,因为它与python可执行文件位于同一目录中,或者位于python知道的子目录中。尝试将dll路径添加到PATH环境变量中。
添加回答
举报
0/150
提交
取消