一个简单的python脚本需要在没有安装python的Windows服务器上运行.
我使用了py2exe,它生成了一个健康的dist子目录,script.exe在本地机器上运行正常.
但是,当我在服务器(Windows Server 2003 R2)上运行它时,它会生成:
系统无法执行指定的程序.
和ERRORLEVEL是9020.
有任何想法吗?
在尝试使用py2exe为我的GUI程序创建可执行文件时,我收到以下错误:
Traceback (most recent call last):
File "dopy.py", line 139, in <module>
File "Tix.pyc", line 225, in __init__
_tkinter.TclError: can't find package Tix
Run Code Online (Sandbox Code Playgroud)
我的程序导入Tix,但py2exe不打包它.
我找不到任何有效的在线解决方案,但最接近的是http://www.py2exe.org/index.cgi/TixSetup.
不幸的是,将data_files更改为我的Tix路径(My Tix8.4.3而不是旧的Tix8.1)也不起作用.
我的程序可执行文件无法在没有Tix的情况下启动,并且py2exe似乎不想包含它.
查看py2exe创建的'dist'文件夹,我注意到有一个tcl文件夹,里面包含一个'tcl8.5'文件夹和一个'tk8.5'文件夹,但没有Tix文件夹.这些文件夹在我的'Python/tcl /'文件夹下是相同的.
只需将'tix8.4.3'文件夹复制到'dist/tcl /'文件夹中,就会包含Tix DLL和包文件,现在我的程序正常运行!
在尝试从Py2Exe创建.exe时,我遇到了PyOpenCL模块的问题.Py2Exe使得.exe应该这样做(没有"ImportError:这里没有名为pyopencl的模块"),但是当我运行.exe时,它没有名为pyopencl的模块.
我正在尝试制作Phoenix Miner的.exe.
我的setup.py:
from distutils.core import setup
import py2exe, sys, os, pyopencl
sys.argv.append('py2exe')
setup(
options = {'py2exe': {'bundle_files': 1,
"includes":["pyopencl","twisted",
"zope","QueueReader",
"numpy"]}},
console=[{'script' : 'phoenix.py'}],
data_files=["C:\\Users\\Nicklas\\Desktop\\Phoenix-Miner\\kernels\\poclbm\\kernel.cl"],
zipfile = None,
)
Run Code Online (Sandbox Code Playgroud)
我找到了一个与我有同样问题的人http://bytes.com/topic/python/answers/848048-py2exe-module-error但没有解决方案.
更新:我发现导致此错误的原因.在pyopencl中__init__有一个名为_find_pyopencl_include_path的函数,它的功能非常自我解释.总而言之:imp模块无法找到pyopencl模块.为了解决这个问题,我注释掉了该行并将路径名设置为pyopencls包含目录的路径.可能不是一个好的解决方案.但这很容易解决.
编辑
我想到的一个选项但是不太了解的是,例如,对于Windows,将批处理脚本编写为:
distutils也安装捆绑包来处理依赖项.看起来这可能是一个相对优雅和简单的解决方案,但我不知道如何继续 - 任何想法?
原始问题
简单来说
您会针对以下情况推荐什么方法?
wine 不会安装Windows版本的Pythonjava由于现有的代码库,移植会产生很大的开销背景
我正在Linux下编写技术和科学应用程序,但也需要其中一些可以部署在Windows/MacO机器上.
在过去,我经常使用Python,但我发现对于不熟悉安装python包的非技术用户来说,创建一个简单的可执行文件(通过使用eg py2exe)是很困难的,因为我无法获得Windows版本的使用Python安装wine.
虽然java看起来是一个不错的选择,但如果可能的话,我想避免从Python中移植现有代码,特别是因为Python也允许编写可移植代码.
我意识到我在这里试图涵盖很多基础,因此任何有关最合适的解决方案(即使不完美)的建议都将受到赞赏.
python cross-platform batch-file py2exe scientific-computing
我正在开发一个关于Python的小工具,它基本上在一个文件夹上启动一组脚本.我需要将它打包在一个独立的二进制文件上,我正在使用py2exe.
我当前的代码用于os.path.listdir()获取文件夹上的所有.py文件,然后使用execfile()基于PyQT接口上的用户输入的funcion 启动其中一些文件.
如果通过主Python文件执行,我的代码按预期工作,但在使用py2exe编译时失败.例外是:
IOError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)
用于启动的python文件execfile().
我正在捆绑"bundle_files": 1和zipfile = None.我试图包含这些文件搞乱包含和包,但没有运气.你能帮我正确配置py2exe吗?
这是我目前的setup.py:
from distutils.core import setup
import py2exe
import os
#Python modules excluded from binary file
mod_excludes = [
"Tkinter",
"doctest",
"unittest",
"pydoc",
"pygments",
"pdb",
"email",
"_ssl",
"difflib",
"inspect"
]
#Avoid adding this dependencies
dll_excludes = [
"MSVCP90.dll",
"w9xpopen.exe"
]
#Force to exe
mod_includes = [
"sip"
]
package_includes = [
"app.payloads" …Run Code Online (Sandbox Code Playgroud) 几个月前py2exe在同一个py文件上工作得很好.但是当我今天再次尝试它时,通过报告"RuntimeError:超出最大递归深度"失败了.结果我得到一个空的"dist"文件夹.Py文件正常工作,它无法打包.我猜py文件中导入的模块有问题.但我无法弄明白.有人知道解决方案吗?
我的py文件的开头部分是:
import xlrd
import wx
import wx.lib.filebrowsebutton as filebrowse
from scipy.optimize import fsolve
import math
import threading
from sympy import Symbol
from sympy import solve
Run Code Online (Sandbox Code Playgroud)
cmd窗口的最后几行是:
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 332, in _safe_import_hook
self.import_hook(name, caller, level=level)
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 719, in import_hook
return Base.import_hook(self,name,caller,fromlist,level)
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 137, in import_hook
m = self.load_tail(q, tail)
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 214, in load_tail
m = self.import_module(head, mname, m)
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 724, in import_module
r = Base.import_module(self,partnam,fqname,parent)
File "D:\Python27\lib\site-packages\py2exe\mf.py", line 284, in import_module …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Py2exe构建我的独立可执行文件.我已经导入了Pmw类.当我运行stanalone excutable时,我收到此错误:
Traceback (most recent call last):
File "----.py", line 9, in <module>
File "zipextimporter.pyc", line 82, in load_module
File "Pmw\__init__.pyc", line 28, in <module>
WindowsError: [Error 3] The system cannot find the path specified:'C:\\Users\\Administrator\\PycharmProjects\\---\\dist\\-----_pmw.exe\\Pmw/*.*'
Run Code Online (Sandbox Code Playgroud)
我搜索了这个错误,但我无法找到任何解决方案为什么我会收到此追溯错误?.
我想在我的可执行文件中捆绑一个很棒的网站复印机,用python 3和py2exe创建.
在常见问题解答部分的HTTrack官方网站上,他们说有可用的DLL /库版本.
但是我不知道从哪里开始,甚至一旦它被捆绑在可执行文件中如何使用DLL.
那么如何将httrack捆绑成python 3可执行文件,并使用其功能开始复制网站?
编辑:
我发现httrack-py 0.6.1但它只支持python 2并使用旧版本的httrack,所以我不能将它用于我的可执行文件.
我正在尝试为python脚本"cnss_image_loader.py"生成一个exe,它在同一个文件夹中导入其他python脚本(见下文),现在我尝试使用命令生成"cnss_image_loader.exe" python setup.py py2exe(参见下面的输出)并运行到低于错误,不确定它们是否是真正的问题但运行生成的exe时会抛出下面显示的错误
题:
1.我可以不使用py2exe生成可执行文件吗?
2. 任何人都可以准确指出我所缺少的内容并提供生成exe的指导吗?
3.有更好的方法来生成python可执行文件吗?
错误:-
C:\Dropbox\py2exe\dist>cnss_image_loader.exe
Traceback (most recent call last):
File "cnss_image_loader.py", line 9, in <module>
File "android_dl.pyc", line 2, in <module>
File "pip\__init__.pyc", line 14, in <module>
File "pip\utils\__init__.pyc", line 22, in <module>
File "pip\compat\__init__.pyc", line 26, in <module>
ImportError: No module named ipaddr
Run Code Online (Sandbox Code Playgroud)
cnss_image_loader.py
from android_dl import *
from alpaca import *
Run Code Online (Sandbox Code Playgroud)
setup.py
from distutils.core import setup
import py2exe
setup(console=['cnss_image_loader.py'])
Run Code Online (Sandbox Code Playgroud)
python setup.py py2exe
The following modules appear to be …Run Code Online (Sandbox Code Playgroud)