为了账号安全,请及时绑定邮箱和手机立即绑定

Tcl:如何更改nameofexecutable的行为

Tcl:如何更改nameofexecutable的行为

牛魔王的故事 2021-03-02 14:29:04
我在使用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之前完成。


查看完整回答
反对 回复 2021-03-27
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

C程序很可能找不到Tix.dll,因为它不在您的路径中。Python可以找到它,因为它与python可执行文件位于同一目录中,或者位于python知道的子目录中。尝试将dll路径添加到PATH环境变量中。


查看完整回答
反对 回复 2021-03-27
  • 2 回答
  • 0 关注
  • 313 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信