折腾了一天遇到了几个头疼的问题,还好回去前解决掉了

第一个:执行cxfreeze打包好的程序遇到 tkinter 和 _tkinter的缺失问题

首先确认是不是已经装了TK的工具:yum install tk-devel

如果已经有了,终端:

python tkinter

     python _tkinter

     print(tkinter)

     print(_tkinter)

找到这两个包的所在位置,然后复制到cxfreeze打包的目录下

接下来再次执行,提示:

首先看一下系统有没有安装 tk tcl  。没有的话: yum -y install tkinter tcl-devel tk-devel

有的话

import tkinter

root = tkinter.Tk()

print(root.tk.exprstring('$tcl_library'))

print(root.tk.exprstring('$tk_library'))

找到 tcl 和 tk 的安装位置

在setup.py 里面加这样的几句话:

os.environ['TCL_LIBRARY'] = "usr/share/tcl8.5"
os.environ['TK_LIBRARY'] = "usr/share/tk8.5"

os.environ['TKPATH'] = "usr/share/tk8.5"

重新打包 python setup.py install

再次运行可执行程序报错:

这次连错误信息都没有就很难受,折腾了一下午差点放弃,最后偶然发现是路径的问题,打包的文件路径名包含  “文档/” 也就是包含中文字符

试着换了一个纯英文的路径名成功!

然后又碰到了更难受的问题,matplotlib程序在linux的终端执行,没有桌面环境,报错:

解决办法:

import matplotlib.pyplot as plt 后面加一句     plt.switch_backend("agg")
在本地虚拟机上测试,查看并关闭centos7的图形界面:

查看默认的target,执行:
systemctl get-default
开机以命令模式启动,执行:
systemctl set-default multi-user.target
开机以图形界面启动,执行:
systemctl set-default graphical.target

第三个问题:

使用cx-freeze打包tensorflow遇到的一堆问题(修改包源码前一定要备份)

1、编译没有报错,执行的时候报错:

错误定位:..../site-packages/window.py -> import pandas.core.common as com

module 'pandas' has no attribute 'core'

解决方法:

更改window.py

把所有的import ...as 改成 from ... import ....as

from pandas.core import common as com

python -m compileall __init__.py

重新install问题解决

2、TypeError 路径错误 for (dir_) in _site_packages_dirs

TypeError : startswith first arg must be str or a tuple of str,not NoneType

错误原因,import site as _site这里,如果不使用cx-freeze打包,_site.USER_SITE变量指示的是python安装目录中site-packages的位置。

而当我们用cx-freeze打包,site-packages的位置不再存在,新的包位置是lib,所以执行到这里_site.USER_SITE变量=None

解决方法:

在..../site-packages/tensorflow/__init__.py 文件的700行左右添加:

if _site.USER_SITE==None:

_site.USER_SITE=_os.path.join(_os.path.abspath(.),"lib")

改成当前相对路径下的lib文件夹

python -m compileall __init__.py

重新install

问题解决

问题解决,痛并快乐的一天

												

Centos7/RedHat7 下 python3使用cx-freeze打包matplotlib程序遇到的问题和解决办法的更多相关文章

  1. vue打包静态资源路径不正确的解决办法

    vue打包静态资源路径不正确的解决办法 vue项目完成打包上线的时候会碰到静态资源找不到的问题,常见的有两个 1.js,css路径不对 解决办法:打开config/index.js,将其中的asset ...

  2. Python打包成exe,文件太大问题解决办法

    Python打包成exe,文件太大问题解决办法 原因 解决办法 具体步骤 情况一:初次打包 情况二:再次打包 原因 由于使用pyinstaller打包.py文件时,会把很多已安装的无关库同时打包进去, ...

  3. ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法

    ubuntu下修改mysql默认字符编码出现的Job failed to start解决办法 前几天卸掉了用了好多年的Windows,安装了Ubuntu12.04,就开始各种搭环境.今天装好了MySQ ...

  4. centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法

    centos 下安装jdk.tomcat 以及tomcat无法从外部访问的解决办法 原创 2014年08月28日 10:24:33 标签: selinux enforce cent 2223 昨天在c ...

  5. Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法

    Ubuntu下安装软件提示无法锁定管理目录(/var/lib/dpkg/)的解决办法   在安装软件的时候,有时候提示,无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它? 这是 ...

  6. centos7虚拟机下python3安装matplotlib遇到的一些问题

    1.安装位置 centos7虚拟机+python3.6 2.问题 2.1如果是使用的python2版本可以使用如下方式, #yum search matplotlib 返回如下: 已加载插件:fast ...

  7. 【解决】MacOS下 Python3.7 使用 pyinstaller 打包后执行报错 Failed to execute script pyi_rth__tkinter

    Fix tcl/tk libs inclusion in tkinter with Python3.7 under MacOS 使用 Pyinstaller 打包时候报错 3027 ERROR: Tc ...

  8. python3.6 使用pyinstaller 打包web程序的方法

    官方文档连接 (https://pyinstaller.readthedocs.io/en/stable/ ) 第一步,下载pywin32 首先下载pywin32,下面是下载链接,下载自己的系统版本对 ...

  9. MAC下配置gradle用eclipse 打包android程序

    1.下载gradle binhttp://gradle.org/gradle-download/ 2.配置gradle,http://www.douban.com/note/311599602/htt ...

随机推荐

  1. [SCOI2007][bzoj1070] 修车 [费用流]

    题面 传送门 思路 我们考虑某个工人修车的从前到后序列如下: ${W_1,W_2,W_3,...,W_n}$ 那么,对于这n辆车的车主而言,他们等候的总时间为: $\sum_{i=1}^{n}W_i\ ...

  2. 亚瑟王(arthur)

    亚瑟王(arthur) 题目描述 小K不慎被LL邪教洗脑了,洗脑程度深到他甚至想要从亚瑟王邪教中脱坑.他决定,在脱坑之前,最后再来打一盘亚瑟王.既然是最后一战,就一定要打得漂亮.众所周知,亚瑟王是一个 ...

  3. 刷题总结——纸带(NOIP赛前模拟)

    题目: 有一个无限长的纸带··上面被划分为若干个格子··现在进行N次操作,第i次操作在L到R上擦出曾经写上的数字(如果有),并写上数字i,询问最终可以看到多少个数字 N小于10^6 题解: 首先毫无疑 ...

  4. Springboot - 在启动完成后执行特定方法

    1.实现方式 实现ApplicationRunner接口 实现CommandLineRunner接口 @Component @Slf4j public class AfterServiceStarte ...

  5. 【HDOJ5996】dingyeye loves stone(Nim游戏)

    题意:dingyeye喜欢和你玩石子游戏.dingyeye有一棵n个节点的有根树,节点编号为0到n−1,根为0号节点. 游戏开始时,第i个节点上有a[i]个石子.两位玩家轮流操作,每次操作玩家可以选择 ...

  6. [论文]Clustering-Based Ensembles as an Alternative to Stacking

    Clustering-Based Ensembles as an Alternative to Stacking 作者:Anna Jurek, Yaxin Bi, Shengli Wu, and Ch ...

  7. LeetCode OJ-- Populating Next Right Pointers in Each Node II **@

    https://oj.leetcode.com/problems/populating-next-right-pointers-in-each-node-ii/ 接上一题目,输入的树不是perfect ...

  8. Java编程风格学习(一)

    最近在看一本有关Java编程规范的书,书中精炼阐述了使用java语言时应该遵循的一些原则.接下来的一段时间我将在这里总结我的学习内容,也希望这一系列文章能够对有需要的人有所帮助.不考虑任何编码规范的代 ...

  9. CCCC L2-003. 月饼[贪心/类似hdu贪心老鼠]

    L2-003. 月饼 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不 ...

  10. Wannafly交流赛1 B 硬币[数学思维/贪心]

    链接:https://www.nowcoder.com/acm/contest/69/B来源:牛客网 蜥蜴的生日快到了,就在这个月底! 今年,蜥蜴的快乐伙伴之一壁虎想要送好多个1元硬币来恶整蜥蜴. 壁 ...