我在Linux Ubuntu中安装了python2.7.10。(我使用的是源代码tarball)
./configure
make
我想获得一个可执行的二进制文件,用于未安装Python的远程服务器。
我使用了命令
python freeze.py -o ./dist_time Test_time.py
'Test_time.py'的源代码:
import datetime
now = datetime.datetime.now()
print
print "Current date and time using str method of datetime object:"
print str(now)
print
print "Current date and time using instance attributes:"
print "Current year: %d" % now.year
print "Current month: %d" % now.month
print "Current day: %d" % now.day
print "Current hour: %d" % now.hour
print "Current minute: %d" % now.minute
print "Current second: %d" % now.second
print "Current microsecond: %d" % now.microsecond
print
print "Current date and time using strftime:"
print now.strftime("%Y-%m-%d %H:%M")
我收到'Test_time'可执行二进制文件。
我将二进制文件(Test_time)移动到远程服务器(未安装Python)。
当我在那里执行'Test_time'binary文件时,我收到此错误消息:
./Test_time
Traceback (most recent call last):
File "Test_time.py", line 3, in <module>
ImportError: No module named datetime
为什么datetime模块没有内置到可执行文件中?如何将模块包含在可执行文件中?
答案 0 :(得分:0)
您可以使用cx_freeze
从脚本创建可执行文件,它将生成包含可执行文件及其依赖项的目录。
您需要在同一目录中创建setup.py
。
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "posix":
base = "Linux"
setup( name = "times",
version = "0.1",
description = "My demo application!",
executables = [Executable("time.py", base=base)])
然后使用此命令python setup.py build
运行它。