当我使用cx_Freeze
时,我得到一个KeyErrorKeyError:'TCL_Library'
,同时构建我的pyplay程序。我为什么会得到这个,我该如何修复它?
我的设置。具体如下:
from cx_Freeze import setup, Executable
setup(
name = "Snakes and Ladders",
version = "0.9",
author = "Adam",
author_email = "Omitted",
options = {"build_exe": {"packages":["pygame"],
"include_files": ["main.py", "squares.py",
"pictures/Base Dice.png", "pictures/Dice 1.png",
"pictures/Dice 2.png", "pictures/Dice 3.png",
"pictures/Dice 4.png", "pictures/Dice 5.png",
"pictures/Dice 6.png"]}},
executables = [Executable("run.py")],
)
只要把这个放在安装之前就可以了。派克
import os
os.environ['TCL_LIBRARY'] = "C:\\LOCAL_TO_PYTHON\\Python35-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\LOCAL_TO_PYTHON\\Python35-32\\tcl\\tk8.6"
并运行它:
python setup.py bdist_msi
这对我很管用。
而不是使用安装特定的绝对路径设置环境变量,如C:\\LOCAL\u TO\u PYTHON\\
您还可以使用Python标准包(如os
)的\uuu file\uu
属性动态派生必要的路径:
import os.path
PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__))
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tcl8.6')
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')
在此修复之后,将创建可执行文件,但当您尝试执行它时,可能会出现“DLL not found error”(DLL未找到错误)——至少在Python 3.5中是这样。3和cx_冻结5.0。1在Windows 10上。
当您添加以下选项时,必要的DLL文件将自动从Python-Installation目录复制到cx-Freeze的构建输出,您应该能够运行您的Tcl/Tk应用程序:
options = {
'build_exe': {
'include_files':[
os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tk86t.dll'),
os.path.join(PYTHON_INSTALL_DIR, 'DLLs', 'tcl86t.dll'),
],
},
}
# ...
setup(options = options,
# ...
)
您可以通过手动设置环境变量来解决这个错误:
set TCL_LIBRARY=C:\Program Files\Python35-32\tcl\tcl8.6
set TK_LIBRARY=C:\Program Files\Python35-32\tcl\tk8.6
您也可以在设置中执行此操作。py
脚本:
os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python35-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python35-32\tcl\tk8.6'
setup([..])
但是我发现实际运行这个程序是行不通的。在cx_冻结邮件列表中提到:
我已经研究过了,不,这不仅仅是一个简单的重新编译——或者它已经完成了!:-)
它正在进行中,看起来需要一点努力。一些用来处理包内扩展模块之类的事情的代码正在崩溃——最好的解决办法是删除这些代码,并将包强制放在zip文件之外(另一个需要吸收的拉取请求)。下周和下周我应该有时间进一步研究这个问题。所以一切进展顺利,我应该在年底前发布一个新版本的cx_Freeze。
但也许你有更多的运气。。。这是错误报告。
cx_Freeze 是一组脚本和模块用来将 Python 脚本封装成可执行程序,类似 py2exe 和 py2app 。不同的是,cx_Freeze 是跨平台的,要求 Python 2.3 或更新版本。
问题内容: 当使用cx_Freeze和Tkinter时,出现以下消息: 注意事项: 我想使用Python 3+(当前使用3.5.3,32位)。不管实际如何,都不在乎特定版本。 我的项目有多个文件需要编译。据我所知,这让我留下了cx_Freeze或Nuitka。努伊特卡有自己的问题。 我正在使用Windows 10家庭版64位 这是我当前的setup.py: 我已经尝试了来自互联网各个角落的许多解决
系统:Ubuntu 16.04 Bazel:0.4.5 TensorFlow:cpu版本r1.0 gcc版本:(Ubuntu 5.4.0-6Ubuntu1~16.04.4)5.4.0 201 60609 bazel build-c opt//tensorflow/contrib/android:libtensorflow_inference.so\
所以我只想使用谷歌云视觉应用编程接口从图像中检测文本或标签。但是当我运行这段代码时,我总是得到: 但我不知道为什么。。。下面是我得到的完整json输出: 我的测试代码如下: 所以问题是。。此代码有什么问题?
我知道,当我不知道列名时,使用apply或不同的方法可以获得最小值。但是,我想知道dplyr mutate函数是否能够在没有已知列名的情况下做到这一点。 谢谢你,
我正在使用spring-kafka-2.2.7。RELEASE并尝试在方法级别使用@KafkaListener与ConvoltKafkaListenerContainerFactory一起创建一个消费者。根据我的理解,这将创建一个ConvoltMessageListenerContainer。 > 如果我有两种不同的方法使用@KafkaListener来消费两个不同的主题,它会创建两个Contop