在spyder中使用cx_freeze(using cx_freeze in spyder)
我使用pip安装了cx_Freeze:
C:\Users\Sarah\Documents\PythonScripts>python -m pip install cx_Freeze --upgrade Collecting cx_Freeze Downloading cx_Freeze-5.0.2-cp36-cp36m-win_amd64.whl (162kB) Installing collected packages: cx-Freeze Successfully installed cx-Freeze-5.0.2
但是,当我尝试执行脚本时出现此错误:
setup.py build Traceback (most recent call last): File "C:\Users\Sarah\Documents\PythonScripts\setup.py", line 9, in <module> from cx_freeze import setup, Executable ImportError: No module named cx_freeze
当我检查系统路径时,我得到所有这些信息
print (sys.path) ['', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\spyder\\utils\\site', 'C:\\Users\\Sarah\\Documents\\PythonScripts', 'C:\\Users\\Sarah\\Anaconda3\\python36.zip', 'C:\\Users\\Sarah\\Anaconda3\\DLLs', 'C:\\Users\\Sarah\\Anaconda3\\lib', 'C:\\Users\\Sarah\\Anaconda3', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\Sphinx-1.5.6-py3.6.egg', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.6.egg', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\Sarah\\.ipython']
我假设不知何故,cx_freeze模块的路径在这里丢失了。 我真的很感谢一些简单的(新手用户)关于如何解决这个问题的想法。
我试图将文件夹cx-freeze复制到
PythonScripts
文件夹,但这没有帮助。I installed cx_Freeze using pip:
C:\Users\Sarah\Documents\PythonScripts>python -m pip install cx_Freeze --upgrade Collecting cx_Freeze Downloading cx_Freeze-5.0.2-cp36-cp36m-win_amd64.whl (162kB) Installing collected packages: cx-Freeze Successfully installed cx-Freeze-5.0.2
However, I get this error when I try to execute a script:
setup.py build Traceback (most recent call last): File "C:\Users\Sarah\Documents\PythonScripts\setup.py", line 9, in <module> from cx_freeze import setup, Executable ImportError: No module named cx_freeze
When I check the system path, I get all this information
print (sys.path) ['', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\spyder\\utils\\site', 'C:\\Users\\Sarah\\Documents\\PythonScripts', 'C:\\Users\\Sarah\\Anaconda3\\python36.zip', 'C:\\Users\\Sarah\\Anaconda3\\DLLs', 'C:\\Users\\Sarah\\Anaconda3\\lib', 'C:\\Users\\Sarah\\Anaconda3', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\Sphinx-1.5.6-py3.6.egg', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\win32', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\win32\\lib', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\Pythonwin', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\setuptools-27.2.0-py3.6.egg', 'C:\\Users\\Sarah\\Anaconda3\\lib\\site-packages\\IPython\\extensions', 'C:\\Users\\Sarah\\.ipython']
I am assuming that somehow, the path to the cx_freeze module is lost in here somewhere. I would really appreciate some simple (novice user) ideas for how to go about fixing this.
I tried copying the folder cx-freeze to the
PythonScripts
folder but that didn't help.
原文:https://stackoverflow.com/questions/45417577
最满意答案
您可以使用特定于目标的变量值 。 例:
CXXFLAGS = -g3 -gdwarf2 CCFLAGS = -g3 -gdwarf2 all: executable debug: CXXFLAGS += -DDEBUG -g debug: CCFLAGS += -DDEBUG -g debug: executable executable: CommandParser.tab.o CommandParser.yy.o Command.o $(CXX) -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl CommandParser.yy.o: CommandParser.l flex -o CommandParser.yy.c CommandParser.l $(CC) -c CommandParser.yy.c
记住在所有的编译命令中使用$(CXX)或$(CC)。
然后,'make debug'将会有额外的标志,如-DDEBUG和-g,其中'make'不会。
在附注中,您可以像其他帖子所建议的那样使您的Makefile更简洁。
You can use Target-specific Variable Values. Example:
CXXFLAGS = -g3 -gdwarf2 CCFLAGS = -g3 -gdwarf2 all: executable debug: CXXFLAGS += -DDEBUG -g debug: CCFLAGS += -DDEBUG -g debug: executable executable: CommandParser.tab.o CommandParser.yy.o Command.o $(CXX) -o output CommandParser.yy.o CommandParser.tab.o Command.o -lfl CommandParser.yy.o: CommandParser.l flex -o CommandParser.yy.c CommandParser.l $(CC) -c CommandParser.yy.c
Remember to use $(CXX) or $(CC) in all your compile commands.
Then, 'make debug' will have extra flags like -DDEBUG and -g where as 'make' will not.
On a side note, you can make your Makefile a lot more concise like other posts had suggested.
相关问答
更多-
你绝对可以这样做。 你想要的三件事是.PHONY目标 (因此make不认为windows-release等是真实文件), 特定于目标的变量值 (因此你可以根据运行的目标设置不同的变量)和Secondary Expansion,因为否则,先决条件的评估发生在特定于目标的上下文之外,因此特定于目标的变量不起作用)。 哪个组合得到这样的东西: windows-release: CC:=... windows-release: CFLAGS:=... windows-release: OUTDIR:=windows ...
-
你对每个目标有不同的Application.mk文件吗? 没有。独立的子目录,所有的都有自己的Android.mk(共享和静态库),但我只有一个Application.mk。 我的Application.mk只是: APP_STL := gnustl_static APP_OPTIM := debug 我仍然不确定什么是构建我们的.so文件的Debug版本和最新版本的最佳方法。 每次手工更换东西都变老了。 至少对我来说,使用jni / Android.mk + Application.mk布局有点分散。 ...
-
假设你在谈论autoconf / automake: 为什么不保持调试符号,让任何不喜欢它们的人make install-strip ? Assuming you're talking about autoconf/automake: Why not just keep the debugging symbols and let anybody who doesn't like them make install-strip?
-
这可能很小,但它加起来了别人在这里说的话。 QA测试版本的优点之一是随着时间的推移,内置的软件调试和日志记录能力将由于开发人员的需求而有所改进,这些开发人员需要弄清楚为什么在QA中出现问题。 开发人员需要调试发布版本的程度越多,客户开始出现问题的更好工具。 当然,开发人员在开发周期的一部分没有理由发布版本。 此外,我不知道任何软件公司有足够的周期来支付在调试时将QA从调试开始转移到版本测试期间的一半。 做完全质量保证周期是很少发生的事情。 This might be minor, but it adds u ...
-
您可以使用特定于目标的变量值 。 例: CXXFLAGS = -g3 -gdwarf2 CCFLAGS = -g3 -gdwarf2 all: executable debug: CXXFLAGS += -DDEBUG -g debug: CCFLAGS += -DDEBUG -g debug: executable executable: CommandParser.tab.o CommandParser.yy.o Command.o $(CXX) -o output CommandPars ...
-
调试和发布目标可以使用不同的宏(例如NDEBUG )和不同的优化级别进行构建。 您通常不希望混合调试和释放目标文件,因此需要将它们编译到不同的目录中。 我经常以这种方式为不同的构建模式使用不同的顶级构建目录: BUILD := debug BUILD_DIR := build/${BUILD} 和编译器标记这样: cppflags.debug := cppflags.release := -DNDEBUG cppflags := ${cppflags.${BUILD}} ${CPPFLAGS} cxxf ...
-
在XCode中,我们有针对每个应用程序的目标。 默认情况下,您为每个应用程序获取一个目标 使用xCode中的内置选项复制目标。 所以一个用于本地测试,另一个用于实时模式。 您也可以在这两个目标处于发布模式。 xCode中的每个目标都有单独的.plist文件来定义一些设置,并且让您的代码库相同。 现在把你的本地服务器url放到target_test的plist和真正的服务器url中。 您的代码应在运行时从相应的plist读取。 看一看 IN XCode we have targets for every ap ...
-
为什么我的makefile在发布版本之后没有创建调试文件夹?(Why doesn't my makefile create a debug folder after a release build?)[2022-01-25]
所以你正在做的是创建一个目标变量 ,它只在debug配方的范围内有效(而不是它的子配方)。 您可能想要做的是如下行: ifeq ($(filter debug,$(MAKECMDGOALS)),debug) EXEC_DIR = ../../../../Bin/linux/debug/ OBJ_DIR = ../../../../Bin/linux/debug/objs ... endif 然后将$(OBJ_DIR)到所有目标文件中。 这解决了Etan提到的不重建的源文件。 So ... -
如果你真的需要进行源内构建并拥有单独的输出目录,我认为你需要将每个文档的条件更改为 CONFIG(debug, debug|release){ DESTDIR = ./debug OBJECTS_DIR = debug/.obj MOC_DIR = debug/.moc RCC_DIR = debug/.rcc UI_DIR = debug/.ui } CONFIG(release, debug|release){ DESTDIR = ./release ...
-
是的,这是完全正常的。 这种情况通常是由像Matrix和Vector这样的类的使用类似普通数据类型(即支持+, - ,*等)和ASSERTs引起的。 类类型导致如此缓慢的原因是因为没有内联代码被内联到释放中的内联代码中。 这可能导致巨大的速度差异,令人惊讶的是如此。 ASSERTs是额外的工作来检查事物的安全性。 额外的工作意味着额外的处理时间,因此事情变慢。 由于已经是趋势,缺乏优化也无济于事。 尽管在某种程度上,这反映在缺乏内联(这是一种优化)。 Yes it is entirely normal. S ...