Pythonwiki en  chs)是一门弱类型解释型脚本语言,拥有动态类型系统和垃圾回收功能,支持多种编程范式:面向对象、命令式、函数式和过程式编程。

由于Python拥有一个巨大而广泛的标准库,这使得Python功能十分强大,开发者在标准库提供的基础上能快速完成想要的功能。

Python在所有操作系统上实现了解释器,这使得Python可以跨平台运行于不同操作系统之上。

可使用跨平台vsCodegithub  wiki en   wiki chs)来编辑和调试Python脚本(注:调试需要安装ms-python  其github在这里,可在vscode的Extensions面板中搜索python找到它然后直接安装)。

ms-python提供了高亮、debug、格式化、测试等功能

还可以在vscode中安装MagicPython,来进行语法高亮、美化等功能

在vsCode为当前python文件指定python版本

还有一款比较好用的python IDE:PyCharm

PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统

其功能包括 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制

Python有2个版本:Python2(2000.10.16发布)和Python3(2008.12.3发布)。

Python3不完全兼容Python2。不过由于Python2使用广泛,后来很多Python3新特性也被移植到旧的Python2.6/2.7版本中。

如:在Python2中,print是一个关键字;而Python3中,print是一个函数。

适用于Python3以上版本以及Python2.6/2.7

  1. print("Hello, world!")

适用于Python2.6以下版本以及Python2.6/2.7

  1. print "Hello, world!"

Python2.7建议下载Python 2.7.15及以上版本:这些版本已集成setuptools模块和pip插件管理工具

pylint模块(代码静态检查):pip install pylint

Python的几个重要环境变量:

变量名 描述
PYTHONPATH PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找
PYTHONSTARTUP Python启动后,先寻找PYTHONSTARTUP环境变量,然后执行此变量指定的文件中的代码
PYTHONCASEOK 加入PYTHONCASEOK的环境变量, 就会使python导入模块的时候不区分大小写
PYTHONHOME 另一种模块搜索路径。该变量中定义的路径会被环境变量PYTHONSTARTUP和PYTHONPATH引用

然而,Python脚本需安装Python环境才能被解释执行,为了使开发出的Python脚本在所有的机器上运行,我们可以使用py2exe来发行我们的Python脚本。

py2exe可以把Python脚本转换成windows下的exe可执行程序(即不需安装Python)。

Python2.7(32位)请下载安装:py2exe-0.6.9.win32-py2.7.exe

Python2.7(64位)请下载安装:py2exe-0.6.9.win64-py2.7.amd64.exe

注:安装完Python后,会将Python的安装目录添加到系统变量的Path中

下载其他Python2对应的py2exe版本请访问:https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/

Python3.3/3.4(32位)请下载安装:py2exe-0.9.2.2.win32.exe

Python3.3/3.4(64位)请下载安装:py2exe-0.9.2.2.win-amd64.exe

注:py2exe不支持最新Python3.6(原因是Python3.6采用了新的字节码格式)

由于我的本机开发环境是Python2.7(32位),因此安装对应的安装包是py2exe-0.6.9.win32-py2.7.exe

安装完成后,py2exe会向E:\Python27目录中拷贝如下文件和目录

注1:py2exe-wininst.log为安装日志,记录详细的安装过程

注2:Removepy2exe.exe为卸载程序,执行E:\Python27\Removepy2exe.exe -u "E:\Python27\py2exe-wininst.log"卸载py2exe

py2exe主要实现如下功能:

① 编译Python标准库成字节码,并打包到library.zip压缩包中

② 拷贝Python相关的运行时库

③ 转换Python脚本成exe可执行文件

④ 拷贝相关的资源文件

下文以CalcMD5.py为例,说明py2exe转换过程:

1. Python2.7(32位)环境下使用vscode编写的CalcMD5.py

  1. #!/usr/bin/env python
  2. #coding=utf-8
  3.  
  4. import BaseLib
  5. if __name__ == '__main__':
  6. BaseLib.PrintHello()

BaseLib.py的内容如下:

  1. #!/usr/bin/env python
  2. #coding=utf-8
  3.  
  4. def PrintHello():
  5. print "Hello"

2. 编写py2exe转换脚本setup.py(放在CalcMD5.py同一目录)

  1. from distutils.core import setup
  2. import py2exe
  3.  
  4. setup(console=["CalcMD5.py"])

更多setup.py配置用法说明:

① 上述 setup.py 中指定产生一个 console 程序; 若要产生一个有 windows 窗口的程序,将 "console" 改成 "windows":

  1. setup(windows=["CalcMD5.py"])

② 若要生成多个可执行文件,只要将多个python文件名以 list 方式传给 setup() 即可:

  1. setup(console=["CalcMD5.py", "other1.py", "other2.py"])

③ 也可以同时产生 console 和 windows 程序:

  1. setup(console=["CalcMD5.py", "other1.py"], windows=["other2.py"])

④ 应用程序有时需要使用到一些外部文件,例如字体或是图片等, 通过setup()的data_files参数,可以将这些额外的文件加入发布目录中。

将一个或多个 (目的目录, [源文件1,源文件2...源文件n]) 形成的 tuple,包装成 list 指派给 data_files参数即可:

  1. setup(console=["CalcMD5.py", "other1.py"], windows=["other2.py"],
  2. data_files=[("img",[r"d:\documents\pic1.jpg",r"d:\documents\pic2.jpg"]),
  3. ("xml",[r"e:\config.xml"])]
  4. )

最后产生的dist目录中,应该会有一个img目录,内含 pic1.jpg 和 pic2.jpg 两个文件,以及 xml 目录,内含一个 config.xml 文件。

⑤ 更多setup.py的语法请参考py2exe的例子  Lib\site-packages\py2exe\samples

3. 在CalcMD5.py目录下,执行以下命令进行转换

  1. E:\Python27\python.exe setup.py py2exe

生成转换日志如下:

  1. running py2exe
  2. creating I:\Test\PythonTest\PyPrj1\build
  3. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32
  4. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe
  5. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\collect-2.7
  6. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\bundle-2.7
  7. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\temp
  8. creating I:\Test\PythonTest\PyPrj1\dist
  9. *** searching for required modules ***
  10. *** parsing results ***
  11. creating python loader for extension 'unicodedata' (e:\Python27\DLLs\unicodedata.pyd -> unicodedata.pyd)
  12. creating python loader for extension 'select' (e:\Python27\DLLs\select.pyd -> select.pyd)
  13. creating python loader for extension '_hashlib' (e:\Python27\DLLs\_hashlib.pyd -> _hashlib.pyd)
  14. creating python loader for extension 'bz2' (e:\Python27\DLLs\bz2.pyd -> bz2.pyd)
  15. *** finding dlls needed ***
  16. *** create binaries ***
  17. *** byte compile python files ***
  18. byte-compiling I:\Test\PythonTest\PyPrj1\BaseLib.py to BaseLib.pyc
  19. byte-compiling I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\temp\_hashlib.py to _hashlib.pyc
  20. byte-compiling I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\temp\bz2.py to bz2.pyc
  21. byte-compiling I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\temp\select.py to select.pyc
  22. byte-compiling I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\temp\unicodedata.py to unicodedata.pyc
  23. byte-compiling e:\Python27\lib\StringIO.py to StringIO.pyc
  24. byte-compiling e:\Python27\lib\UserDict.py to UserDict.pyc
  25. byte-compiling e:\Python27\lib\__future__.py to __future__.pyc
  26. byte-compiling e:\Python27\lib\_abcoll.py to _abcoll.pyc
  27. byte-compiling e:\Python27\lib\_strptime.py to _strptime.pyc
  28. byte-compiling e:\Python27\lib\_threading_local.py to _threading_local.pyc
  29. byte-compiling e:\Python27\lib\_weakrefset.py to _weakrefset.pyc
  30. byte-compiling e:\Python27\lib\abc.py to abc.pyc
  31. byte-compiling e:\Python27\lib\atexit.py to atexit.pyc
  32. byte-compiling e:\Python27\lib\base64.py to base64.pyc
  33. byte-compiling e:\Python27\lib\bdb.py to bdb.pyc
  34. byte-compiling e:\Python27\lib\calendar.py to calendar.pyc
  35. byte-compiling e:\Python27\lib\cmd.py to cmd.pyc
  36. byte-compiling e:\Python27\lib\codecs.py to codecs.pyc
  37. byte-compiling e:\Python27\lib\collections.py to collections.pyc
  38. byte-compiling e:\Python27\lib\copy.py to copy.pyc
  39. byte-compiling e:\Python27\lib\copy_reg.py to copy_reg.pyc
  40. byte-compiling e:\Python27\lib\difflib.py to difflib.pyc
  41. byte-compiling e:\Python27\lib\dis.py to dis.pyc
  42. byte-compiling e:\Python27\lib\doctest.py to doctest.pyc
  43. byte-compiling e:\Python27\lib\dummy_thread.py to dummy_thread.pyc
  44. byte-compiling e:\Python27\lib\encodings\__init__.py to encodings\__init__.pyc
  45. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\collect-2.7\encodings
  46. byte-compiling e:\Python27\lib\encodings\aliases.py to encodings\aliases.pyc
  47. byte-compiling e:\Python27\lib\encodings\ascii.py to encodings\ascii.pyc
  48. byte-compiling e:\Python27\lib\encodings\base64_codec.py to encodings\base64_codec.pyc
  49. byte-compiling e:\Python27\lib\encodings\big5.py to encodings\big5.pyc
  50. byte-compiling e:\Python27\lib\encodings\big5hkscs.py to encodings\big5hkscs.pyc
  51. byte-compiling e:\Python27\lib\encodings\bz2_codec.py to encodings\bz2_codec.pyc
  52. byte-compiling e:\Python27\lib\encodings\charmap.py to encodings\charmap.pyc
  53. byte-compiling e:\Python27\lib\encodings\cp037.py to encodings\cp037.pyc
  54. byte-compiling e:\Python27\lib\encodings\cp1006.py to encodings\cp1006.pyc
  55. byte-compiling e:\Python27\lib\encodings\cp1026.py to encodings\cp1026.pyc
  56. byte-compiling e:\Python27\lib\encodings\cp1140.py to encodings\cp1140.pyc
  57. byte-compiling e:\Python27\lib\encodings\cp1250.py to encodings\cp1250.pyc
  58. byte-compiling e:\Python27\lib\encodings\cp1251.py to encodings\cp1251.pyc
  59. byte-compiling e:\Python27\lib\encodings\cp1252.py to encodings\cp1252.pyc
  60. byte-compiling e:\Python27\lib\encodings\cp1253.py to encodings\cp1253.pyc
  61. byte-compiling e:\Python27\lib\encodings\cp1254.py to encodings\cp1254.pyc
  62. byte-compiling e:\Python27\lib\encodings\cp1255.py to encodings\cp1255.pyc
  63. byte-compiling e:\Python27\lib\encodings\cp1256.py to encodings\cp1256.pyc
  64. byte-compiling e:\Python27\lib\encodings\cp1257.py to encodings\cp1257.pyc
  65. byte-compiling e:\Python27\lib\encodings\cp1258.py to encodings\cp1258.pyc
  66. byte-compiling e:\Python27\lib\encodings\cp424.py to encodings\cp424.pyc
  67. byte-compiling e:\Python27\lib\encodings\cp437.py to encodings\cp437.pyc
  68. byte-compiling e:\Python27\lib\encodings\cp500.py to encodings\cp500.pyc
  69. byte-compiling e:\Python27\lib\encodings\cp720.py to encodings\cp720.pyc
  70. byte-compiling e:\Python27\lib\encodings\cp737.py to encodings\cp737.pyc
  71. byte-compiling e:\Python27\lib\encodings\cp775.py to encodings\cp775.pyc
  72. byte-compiling e:\Python27\lib\encodings\cp850.py to encodings\cp850.pyc
  73. byte-compiling e:\Python27\lib\encodings\cp852.py to encodings\cp852.pyc
  74. byte-compiling e:\Python27\lib\encodings\cp855.py to encodings\cp855.pyc
  75. byte-compiling e:\Python27\lib\encodings\cp856.py to encodings\cp856.pyc
  76. byte-compiling e:\Python27\lib\encodings\cp857.py to encodings\cp857.pyc
  77. byte-compiling e:\Python27\lib\encodings\cp858.py to encodings\cp858.pyc
  78. byte-compiling e:\Python27\lib\encodings\cp860.py to encodings\cp860.pyc
  79. byte-compiling e:\Python27\lib\encodings\cp861.py to encodings\cp861.pyc
  80. byte-compiling e:\Python27\lib\encodings\cp862.py to encodings\cp862.pyc
  81. byte-compiling e:\Python27\lib\encodings\cp863.py to encodings\cp863.pyc
  82. byte-compiling e:\Python27\lib\encodings\cp864.py to encodings\cp864.pyc
  83. byte-compiling e:\Python27\lib\encodings\cp865.py to encodings\cp865.pyc
  84. byte-compiling e:\Python27\lib\encodings\cp866.py to encodings\cp866.pyc
  85. byte-compiling e:\Python27\lib\encodings\cp869.py to encodings\cp869.pyc
  86. byte-compiling e:\Python27\lib\encodings\cp874.py to encodings\cp874.pyc
  87. byte-compiling e:\Python27\lib\encodings\cp875.py to encodings\cp875.pyc
  88. byte-compiling e:\Python27\lib\encodings\cp932.py to encodings\cp932.pyc
  89. byte-compiling e:\Python27\lib\encodings\cp949.py to encodings\cp949.pyc
  90. byte-compiling e:\Python27\lib\encodings\cp950.py to encodings\cp950.pyc
  91. byte-compiling e:\Python27\lib\encodings\euc_jis_2004.py to encodings\euc_jis_2004.pyc
  92. byte-compiling e:\Python27\lib\encodings\euc_jisx0213.py to encodings\euc_jisx0213.pyc
  93. byte-compiling e:\Python27\lib\encodings\euc_jp.py to encodings\euc_jp.pyc
  94. byte-compiling e:\Python27\lib\encodings\euc_kr.py to encodings\euc_kr.pyc
  95. byte-compiling e:\Python27\lib\encodings\gb18030.py to encodings\gb18030.pyc
  96. byte-compiling e:\Python27\lib\encodings\gb2312.py to encodings\gb2312.pyc
  97. byte-compiling e:\Python27\lib\encodings\gbk.py to encodings\gbk.pyc
  98. byte-compiling e:\Python27\lib\encodings\hex_codec.py to encodings\hex_codec.pyc
  99. byte-compiling e:\Python27\lib\encodings\hp_roman8.py to encodings\hp_roman8.pyc
  100. byte-compiling e:\Python27\lib\encodings\hz.py to encodings\hz.pyc
  101. byte-compiling e:\Python27\lib\encodings\idna.py to encodings\idna.pyc
  102. byte-compiling e:\Python27\lib\encodings\iso2022_jp.py to encodings\iso2022_jp.pyc
  103. byte-compiling e:\Python27\lib\encodings\iso2022_jp_1.py to encodings\iso2022_jp_1.pyc
  104. byte-compiling e:\Python27\lib\encodings\iso2022_jp_2.py to encodings\iso2022_jp_2.pyc
  105. byte-compiling e:\Python27\lib\encodings\iso2022_jp_2004.py to encodings\iso2022_jp_2004.pyc
  106. byte-compiling e:\Python27\lib\encodings\iso2022_jp_3.py to encodings\iso2022_jp_3.pyc
  107. byte-compiling e:\Python27\lib\encodings\iso2022_jp_ext.py to encodings\iso2022_jp_ext.pyc
  108. byte-compiling e:\Python27\lib\encodings\iso2022_kr.py to encodings\iso2022_kr.pyc
  109. byte-compiling e:\Python27\lib\encodings\iso8859_1.py to encodings\iso8859_1.pyc
  110. byte-compiling e:\Python27\lib\encodings\iso8859_10.py to encodings\iso8859_10.pyc
  111. byte-compiling e:\Python27\lib\encodings\iso8859_11.py to encodings\iso8859_11.pyc
  112. byte-compiling e:\Python27\lib\encodings\iso8859_13.py to encodings\iso8859_13.pyc
  113. byte-compiling e:\Python27\lib\encodings\iso8859_14.py to encodings\iso8859_14.pyc
  114. byte-compiling e:\Python27\lib\encodings\iso8859_15.py to encodings\iso8859_15.pyc
  115. byte-compiling e:\Python27\lib\encodings\iso8859_16.py to encodings\iso8859_16.pyc
  116. byte-compiling e:\Python27\lib\encodings\iso8859_2.py to encodings\iso8859_2.pyc
  117. byte-compiling e:\Python27\lib\encodings\iso8859_3.py to encodings\iso8859_3.pyc
  118. byte-compiling e:\Python27\lib\encodings\iso8859_4.py to encodings\iso8859_4.pyc
  119. byte-compiling e:\Python27\lib\encodings\iso8859_5.py to encodings\iso8859_5.pyc
  120. byte-compiling e:\Python27\lib\encodings\iso8859_6.py to encodings\iso8859_6.pyc
  121. byte-compiling e:\Python27\lib\encodings\iso8859_7.py to encodings\iso8859_7.pyc
  122. byte-compiling e:\Python27\lib\encodings\iso8859_8.py to encodings\iso8859_8.pyc
  123. byte-compiling e:\Python27\lib\encodings\iso8859_9.py to encodings\iso8859_9.pyc
  124. byte-compiling e:\Python27\lib\encodings\johab.py to encodings\johab.pyc
  125. byte-compiling e:\Python27\lib\encodings\koi8_r.py to encodings\koi8_r.pyc
  126. byte-compiling e:\Python27\lib\encodings\koi8_u.py to encodings\koi8_u.pyc
  127. byte-compiling e:\Python27\lib\encodings\latin_1.py to encodings\latin_1.pyc
  128. byte-compiling e:\Python27\lib\encodings\mac_arabic.py to encodings\mac_arabic.pyc
  129. byte-compiling e:\Python27\lib\encodings\mac_centeuro.py to encodings\mac_centeuro.pyc
  130. byte-compiling e:\Python27\lib\encodings\mac_croatian.py to encodings\mac_croatian.pyc
  131. byte-compiling e:\Python27\lib\encodings\mac_cyrillic.py to encodings\mac_cyrillic.pyc
  132. byte-compiling e:\Python27\lib\encodings\mac_farsi.py to encodings\mac_farsi.pyc
  133. byte-compiling e:\Python27\lib\encodings\mac_greek.py to encodings\mac_greek.pyc
  134. byte-compiling e:\Python27\lib\encodings\mac_iceland.py to encodings\mac_iceland.pyc
  135. byte-compiling e:\Python27\lib\encodings\mac_latin2.py to encodings\mac_latin2.pyc
  136. byte-compiling e:\Python27\lib\encodings\mac_roman.py to encodings\mac_roman.pyc
  137. byte-compiling e:\Python27\lib\encodings\mac_romanian.py to encodings\mac_romanian.pyc
  138. byte-compiling e:\Python27\lib\encodings\mac_turkish.py to encodings\mac_turkish.pyc
  139. byte-compiling e:\Python27\lib\encodings\mbcs.py to encodings\mbcs.pyc
  140. byte-compiling e:\Python27\lib\encodings\palmos.py to encodings\palmos.pyc
  141. byte-compiling e:\Python27\lib\encodings\ptcp154.py to encodings\ptcp154.pyc
  142. byte-compiling e:\Python27\lib\encodings\punycode.py to encodings\punycode.pyc
  143. byte-compiling e:\Python27\lib\encodings\quopri_codec.py to encodings\quopri_codec.pyc
  144. byte-compiling e:\Python27\lib\encodings\raw_unicode_escape.py to encodings\raw_unicode_escape.pyc
  145. byte-compiling e:\Python27\lib\encodings\rot_13.py to encodings\rot_13.pyc
  146. byte-compiling e:\Python27\lib\encodings\shift_jis.py to encodings\shift_jis.pyc
  147. byte-compiling e:\Python27\lib\encodings\shift_jis_2004.py to encodings\shift_jis_2004.pyc
  148. byte-compiling e:\Python27\lib\encodings\shift_jisx0213.py to encodings\shift_jisx0213.pyc
  149. byte-compiling e:\Python27\lib\encodings\string_escape.py to encodings\string_escape.pyc
  150. byte-compiling e:\Python27\lib\encodings\tis_620.py to encodings\tis_620.pyc
  151. byte-compiling e:\Python27\lib\encodings\undefined.py to encodings\undefined.pyc
  152. byte-compiling e:\Python27\lib\encodings\unicode_escape.py to encodings\unicode_escape.pyc
  153. byte-compiling e:\Python27\lib\encodings\unicode_internal.py to encodings\unicode_internal.pyc
  154. byte-compiling e:\Python27\lib\encodings\utf_16.py to encodings\utf_16.pyc
  155. byte-compiling e:\Python27\lib\encodings\utf_16_be.py to encodings\utf_16_be.pyc
  156. byte-compiling e:\Python27\lib\encodings\utf_16_le.py to encodings\utf_16_le.pyc
  157. byte-compiling e:\Python27\lib\encodings\utf_32.py to encodings\utf_32.pyc
  158. byte-compiling e:\Python27\lib\encodings\utf_32_be.py to encodings\utf_32_be.pyc
  159. byte-compiling e:\Python27\lib\encodings\utf_32_le.py to encodings\utf_32_le.pyc
  160. byte-compiling e:\Python27\lib\encodings\utf_7.py to encodings\utf_7.pyc
  161. byte-compiling e:\Python27\lib\encodings\utf_8.py to encodings\utf_8.pyc
  162. byte-compiling e:\Python27\lib\encodings\utf_8_sig.py to encodings\utf_8_sig.pyc
  163. byte-compiling e:\Python27\lib\encodings\uu_codec.py to encodings\uu_codec.pyc
  164. byte-compiling e:\Python27\lib\encodings\zlib_codec.py to encodings\zlib_codec.pyc
  165. byte-compiling e:\Python27\lib\fnmatch.py to fnmatch.pyc
  166. byte-compiling e:\Python27\lib\functools.py to functools.pyc
  167. byte-compiling e:\Python27\lib\genericpath.py to genericpath.pyc
  168. byte-compiling e:\Python27\lib\getopt.py to getopt.pyc
  169. byte-compiling e:\Python27\lib\gettext.py to gettext.pyc
  170. byte-compiling e:\Python27\lib\hashlib.py to hashlib.pyc
  171. byte-compiling e:\Python27\lib\heapq.py to heapq.pyc
  172. byte-compiling e:\Python27\lib\inspect.py to inspect.pyc
  173. byte-compiling e:\Python27\lib\io.py to io.pyc
  174. byte-compiling e:\Python27\lib\keyword.py to keyword.pyc
  175. byte-compiling e:\Python27\lib\linecache.py to linecache.pyc
  176. byte-compiling e:\Python27\lib\locale.py to locale.pyc
  177. byte-compiling e:\Python27\lib\logging\__init__.py to logging\__init__.pyc
  178. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\collect-2.7\logging
  179. byte-compiling e:\Python27\lib\ntpath.py to ntpath.pyc
  180. byte-compiling e:\Python27\lib\opcode.py to opcode.pyc
  181. byte-compiling e:\Python27\lib\optparse.py to optparse.pyc
  182. byte-compiling e:\Python27\lib\os.py to os.pyc
  183. byte-compiling e:\Python27\lib\os2emxpath.py to os2emxpath.pyc
  184. byte-compiling e:\Python27\lib\pdb.py to pdb.pyc
  185. byte-compiling e:\Python27\lib\pickle.py to pickle.pyc
  186. byte-compiling e:\Python27\lib\posixpath.py to posixpath.pyc
  187. byte-compiling e:\Python27\lib\pprint.py to pprint.pyc
  188. byte-compiling e:\Python27\lib\quopri.py to quopri.pyc
  189. byte-compiling e:\Python27\lib\random.py to random.pyc
  190. byte-compiling e:\Python27\lib\re.py to re.pyc
  191. byte-compiling e:\Python27\lib\repr.py to repr.pyc
  192. byte-compiling e:\Python27\lib\shlex.py to shlex.pyc
  193. byte-compiling e:\Python27\lib\sre.py to sre.pyc
  194. byte-compiling e:\Python27\lib\sre_compile.py to sre_compile.pyc
  195. byte-compiling e:\Python27\lib\sre_constants.py to sre_constants.pyc
  196. byte-compiling e:\Python27\lib\sre_parse.py to sre_parse.pyc
  197. byte-compiling e:\Python27\lib\stat.py to stat.pyc
  198. byte-compiling e:\Python27\lib\string.py to string.pyc
  199. byte-compiling e:\Python27\lib\stringprep.py to stringprep.pyc
  200. byte-compiling e:\Python27\lib\struct.py to struct.pyc
  201. byte-compiling e:\Python27\lib\subprocess.py to subprocess.pyc
  202. byte-compiling e:\Python27\lib\tempfile.py to tempfile.pyc
  203. byte-compiling e:\Python27\lib\textwrap.py to textwrap.pyc
  204. byte-compiling e:\Python27\lib\threading.py to threading.pyc
  205. byte-compiling e:\Python27\lib\token.py to token.pyc
  206. byte-compiling e:\Python27\lib\tokenize.py to tokenize.pyc
  207. byte-compiling e:\Python27\lib\traceback.py to traceback.pyc
  208. byte-compiling e:\Python27\lib\types.py to types.pyc
  209. byte-compiling e:\Python27\lib\unittest\__init__.py to unittest\__init__.pyc
  210. creating I:\Test\PythonTest\PyPrj1\build\bdist.win32\winexe\collect-2.7\unittest
  211. byte-compiling e:\Python27\lib\unittest\case.py to unittest\case.pyc
  212. byte-compiling e:\Python27\lib\unittest\loader.py to unittest\loader.pyc
  213. byte-compiling e:\Python27\lib\unittest\main.py to unittest\main.pyc
  214. byte-compiling e:\Python27\lib\unittest\result.py to unittest\result.pyc
  215. byte-compiling e:\Python27\lib\unittest\runner.py to unittest\runner.pyc
  216. byte-compiling e:\Python27\lib\unittest\signals.py to unittest\signals.pyc
  217. byte-compiling e:\Python27\lib\unittest\suite.py to unittest\suite.pyc
  218. byte-compiling e:\Python27\lib\unittest\util.py to unittest\util.pyc
  219. byte-compiling e:\Python27\lib\warnings.py to warnings.pyc
  220. byte-compiling e:\Python27\lib\weakref.py to weakref.pyc
  221. *** copy extensions ***
  222. copying e:\Python27\DLLs\_hashlib.pyd -> I:\Test\PythonTest\PyPrj1\dist
  223. copying e:\Python27\DLLs\bz2.pyd -> I:\Test\PythonTest\PyPrj1\dist
  224. copying e:\Python27\DLLs\select.pyd -> I:\Test\PythonTest\PyPrj1\dist
  225. copying e:\Python27\DLLs\unicodedata.pyd -> I:\Test\PythonTest\PyPrj1\dist
  226. *** copy dlls ***
  227. copying e:\Python27\w9xpopen.exe -> I:\Test\PythonTest\PyPrj1\dist
  228. copying C:\Windows\system32\python27.dll -> I:\Test\PythonTest\PyPrj1\dist
  229. setting sys.winver for 'I:\Test\PythonTest\PyPrj1\dist\python27.dll' to 'py2exe'
  230. copying e:\Python27\lib\site-packages\py2exe\run.exe -> I:\Test\PythonTest\PyPrj1\dist\CalcMD5.exe
  231.  
  232. *** binary dependencies ***
  233. Your executable(s) also depend on these dlls which are not included,
  234. you may or may not need to distribute them.
  235.  
  236. Make sure you have the license if you distribute any of them, and
  237. make sure you don't distribute files belonging to the operating system.
  238.  
  239. USER32.dll - C:\Windows\system32\USER32.dll
  240. SHELL32.dll - C:\Windows\system32\SHELL32.dll
  241. ADVAPI32.dll - C:\Windows\system32\ADVAPI32.dll
  242. WS2_32.dll - C:\Windows\system32\WS2_32.dll
  243. GDI32.dll - C:\Windows\system32\GDI32.dll
  244. KERNEL32.dll - C:\Windows\system32\KERNEL32.dll

build目录是转换时生成的临时文件,最终转换出来的文件存放在dist目录中。执行CalcMD5.exe就可以打印出Hello字符串了。

最后将dist目录打包,就可以拷贝给他人使用了

Py2exe仅支持windows平台,其他python脚本转可执行程序工具

Pyinstaller支持windows/linux/Mac osx,它本身并不是python模块。

Py2app是把mac osx下的python程序打包的工具。

使用py2exe将python脚本转换成exe可执行文件的更多相关文章

  1. 将Python脚本封装成exe可执行文件 转

    将Python脚本封装成exe可执行文件 http://www.cnblogs.com/renzo/archive/2012/01/01/2309260.html  cx_freeze是用来将 Pyt ...

  2. pyinstaller使用-python项目转换成exe可执行文件

    http://blog.csdn.net/pipisorry/article/details/50620122 Python不是每个人的计算机里面都有安装,当您写了一个好用的工具,需要一个standa ...

  3. 用py2exe将python文件转换成exe可执行程序

    1.首先需要安装py2exe模块,下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/ 然后用pip install 命令安装py2exe模块,如果你用的py ...

  4. 将python脚本转换成exe文件--pyinstaller

    遇到的大坑: 直接运行python文件效果:         执行 pyinstaller  -F -w  -p  -i ./123.ico  ./main.py    在dict文件夹下生成exe文 ...

  5. python脚本打包成exe可执行文件

    1. 工具pyinstaller (pip install pyinstaller) 2.生成exe (pyinstaller -F -w Capturing_PDFs.py) 参数 -F 生成单个文 ...

  6. 小白学习Python之路---py文件转换成exe可执行文件

    一.背景 今天闲着无事,写了一个小小的Python脚本程序,然后给同学炫耀的时候,发现每次都得拉着其他人过来看着自己的电脑屏幕,感觉不是很爽,然后我想着网上肯定有关于Python脚本转换成可执行文件的 ...

  7. Python脚本打包成exe执行文件

    需求 一个教辅目录结构检查工具,目录结构是[书籍]-[章节]-[题目|答案]-[*.jpg],后台有个异步处理的服务,需要强依赖这个目录结构. 书籍解析是单独的pipeline,日志对用户不可见,这里 ...

  8. Python 程序打包成 exe 可执行文件

    Python 程序打包工具 Python 是一个脚本语言,被解释器解释执行.它的发布方式: .py 文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装 Python 并且安装依赖 ...

  9. 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片)

    解决 将Python项目打包成EXE可执行文件(单文件,多文件,包含图片) 1.当我们写了一个Python的项目时,特别是一个GUI项目,我们特备希望它能成为一个在Windows系统可执行的EXE文件 ...

随机推荐

  1. 使用docker-compose 一键部署你的分布式调用链跟踪框架skywalking

    一旦你的程序docker化之后,你会遇到各种问题,比如原来采用的本地记日志的方式就不再方便了,虽然你可以挂载到宿主机,但你使用 --scale 的话,会导致 记录日志异常,所以最好的方式还是要做日志中 ...

  2. 驰骋工作流引擎 -Webservice接口说明文档

      关键词:工作流引擎接口说明  驰骋工作流接口参数详解 接口 LocalWSI /** * 待办 * @param userNo 用户编号 * @param sysNo 系统编号,为空时返回平台所有 ...

  3. Android之OkHttp详解

    文章大纲 一.OkHttp简介二.OkHttp简单使用三.OkHttp封装四.项目源码下载   一.OkHttp简介 1. 什么是OkHttp   一般在Java平台上,我们会使用Apache Htt ...

  4. bat脚本+diskpart 脚本实现自动划分磁盘分区

    我提供的脚本只是案例展示,真实场景需要自行修改.(正好我今天看到一个规范的bat脚本,我放出来,大家一起学习下) 要求:将20G的磁盘1,分出4G为主分区,4G扩展分区(2个2G逻辑分区) 试验环境: ...

  5. Windows server 1709(不含UI)模板部署

    1.系统安装 在虚拟机导入安装镜像,客户端操作系统选择” windows server 2012”,虚拟磁盘类型选择”SCSI”:依照安装向导正确安装操作系统 2.安装vmware tools 选择虚 ...

  6. asp.net core 2.0的认证和授权

    在asp.net core中,微软提供了基于认证(Authentication)和授权(Authorization)的方式,来实现权限管理的,本篇博文,介绍基于固定角色的权限管理和自定义角色权限管理, ...

  7. 阿里云服务器建站——centos7部署apache+mysql+php

    自己也是忙活了半天,才完成了阿里云服务器的建站,这里就来分享一下. 首先如果是要自己搭建一个网站的话,除了服务器以外还要购买域名,并且要去备案,一般在哪买的域名都有备案的系统,备案的话一般要两到三个星 ...

  8. javascript权威指南笔记[6-8]

    1.三类对象,两类属性 2.原型链只有在查询的时候才会体现 3.对象属性访问 4.属性赋值 5.delete只是断开属性和宿主对象的关系,不会去操作属性中的属性 6.Object.ke() var m ...

  9. Java集合详解5:深入理解LinkedHashMap和LRU缓存

    今天我们来深入探索一下LinkedHashMap的底层原理,并且使用linkedhashmap来实现LRU缓存. 摘要: HashMap和双向链表合二为一即是LinkedHashMap.所谓Linke ...

  10. springboot~@Valid注解对嵌套类型的校验

    @Valid注解可以实现数据的验证,你可以定义实体,在实体的属性上添加校验规则,而在API接收数据时添加@valid关键字,这时你的实体将会开启一个校验的功能,具体的代码如下,是最基本的应用: 实体: ...