码迷,mamicode.com
首页 > 编程语言 > 详细

内网服务器使用python程序遇到的问题

时间:2015-12-01 12:38:30      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

背景:  

  最近服务器上需要实现一个拼接图片的功能,于是使用了python的PIL库写了一个。

  在向服务器上放置程序时发现,服务器系统为Centos6.5,且处于内网,使用的是自带的python2.6.6,没有太多的库支持,无法运行该py程序。

  想要在内网服务器上使用这个工具有两种方案:

      一.在该内网服务器上使用PIL库源码编译安装,然后直接运行py程序

      二.在另外一台安装好库的服务器上把python代码打包成二进制文件,然后复制到内网服务器上使用

      *第二个方法需要注意操作系统的版本和py版本要一致,否则会动态链接库不匹配的问题。

原料:

  CentOS6.5, python2.6.6

先进行方案一:

  1.下载PIL源码包

    PIL-1.1.7.tar.gz

  2.解压,安装PIL源码包

    提示需要setuptools

    下载setuptools.tar.gz包(由于是事后记录,所以有些包的下载url并没有做记录,下同。)

    解压,安装setuptools,完成。

    进入PIL目录,运行python setup.py install

    报错(种类斑杂的错误?)

  3.查看PIL包中的README

    发现有些其他依赖包需要添加,

    于是根据README提示另外下载了freetype-2.4.5, lcms2-2.5, libpng-1.6.18, zlib-1.2.5等

   4.依次安装这些依赖

    在安装过程中libpng报错(种类斑杂的错误?)

    ... ...

  n.查资料处理报错信息折腾了约20分钟,决定放弃这个方案,转而使用方案二。

 

开始进行方案二:

   1.搭建环境

    安装了一台同内网服务器配置的虚拟机CentOS6.5,python2.6.6,设置网卡使其可以上网。

   2.自动安装PIL库

    #easy_install Image               # 此处先安装了python pip

  3.测试PIL库和程序

    python>import PIL.Image

    python>

    *说明库安装成功

   4.下载cx_freeze源码包,并进行安装

#wget http://prdownloads.sourceforge.net/cx-freeze/cx_Freeze-4.0.1.tar.gz
# python setup.py build
# python setup.py install

 

  5.打包python程序

    #cx_freeze pasteP.py

    此时出现问题:

  Missing modules:
  ? PyQt4.QtGui imported from PIL.ImageQt
  ? PyQt5.QtGui imported from PIL.ImageQt
  ? PySide.QtGui imported from PIL.ImageQt
  ? _imaging_gif imported from PIL.GifImagePlugin
  ? _subprocess imported from subprocess
  ? builtins imported from PIL.Image
  ? cffi imported from PIL.Image
  ? pathlib imported from PIL.Image

  6.在网上查了这个错误的处理,并没有太多资料有方法解决这个问题。

    在此记录一个以后再研究了

    http://www.crifan.com/python_cx_freeze_importerror_no_module_named_traceback/

    http://www.crifan.com/use_cx_freeze_to_package_python_to_single_executable_exe/

 

找别的方案来处理(?)

  # 使用pyinstaller来打包py程序

  1.从pyinstaller官网下载

    http://www.pyinstaller.org

    # 这里注意看一下自己的python版本,官网上提及 release 3.0的版本 并不支持2.7一下的python版本,刚开始并没有注意,报错之后才发现。

    # 从历史版本中逐个向下找发现“2.1 -last Python 2-only release.”“Minimum supported Python version 2.4”

    下载得到Pyinstaller-2.1.tar.gz 

  2.压缩包上传到服务器上,解压安装

  3.拷贝需要编译到文件 

    将py程序文件全部拷贝到pyinstaller目录中

    运行python pyinstaller.py xx.py

    # 如果你使用的是root用户,则此时会报错提示“cannot run pyinstaller as user root

    # 切到普通用户模式,sudo pas  或者重新创建一个用户

    # 注意将pyinstaller目录到权限根据你到用户进行调整 

  4.在dist目录中可以看到自己需要编译到文件。

    此时将程序文件夹整个打包放置到来我内网服务器上进行测试,运行OK。

 

内网服务器使用python程序遇到的问题

标签:

原文地址:http://www.cnblogs.com/pujielan/p/4997248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!