Linux无法联网 python 处理docx文档时 错误处理:ImportError: cannot import name etree
1、环境说明:
python 处理WORD文档时即docx文档:在windows环境使用pip 自动安装python-docx,处理文档没有任何报错问题。
当把windows安装的doc包,lxml包导入Linux环境,就出现了ImportError: cannot import name etree错误。
2、网络查询说明:
网络搜索了一下上述错误:ImportError: cannot import name etree,很多都说版本问题,让安装低版本的lxml,更换了低版本的lxml还是出现同样的错误。还有说是自己的文件命名出现问题,都一一检查了,没有命名冲突。
3、错误处理过程:
a) 在Linux 环境 进入 python 然后 输入
from lxml import etree
出现报错:加载不了etree类
ImportError: cannot import name etree
最后查看发现:windows拷贝过去到服务器上的 lxml包如下
说明 1:etree.pyd 这个没有编译成python文件
b)因为服务器Linux环境无法联网,导致在服务器上面没法使用pip安装包。
c)搭建虚拟服务器Linux环境,使用NAT模式下联网:
(1)搭建虚拟机Linux环境(略)
(2)虚拟机环境联网:
a)设置虚拟机网络类型:
b)配置虚拟机VMnet8(NAT模式):
虚拟机 -> 菜单栏“编辑" -> 虚拟机网络编辑器 打开:
设置虚拟机NAT模式 网络,随便设计一个 192.168.XXX.XXX的IP地址
c)设置VMnet8网卡:
d)启动虚拟机!!!!
4、搭建linux python 环境:
a) 虚拟机-安装服务器开发版python: 如:服务器开发版本python2.7
安装过程自行百度,因为现在虚拟机已经可以联网了!!!
b)虚拟机-安装pip
5、虚拟机安装python-docx包:在虚拟机直接执行命令
pip install python-docx
6、安装好的python-docx包如下:
说明:安装python-dcox时,会依赖lxml包!!
这是我导出来的包,打包拷贝到服务器上即可!!!
然后ImportError: cannot import name etree错误就不会再出现!!!
最后发现安装的包里面:
etree.pyd就编译成etree.so
成功!!!!
7、总结:
以后有类似的问题都可以搭建同样的虚拟环境去联网下载服务器需要的包,完美!!!