我使用的是djangoflup+fastgic+ngix。它运行良好。
现在我计划从python 2.6.6升级到2.7.2,在python2.7中导入flup时遇到了一个问题。
Python 2.7.2 (Red Hat 4.1.2-50)
>>> import sys
>>> sys.path
['', '......',
'/usr/local/lib/python2.7.2/lib/python2.7/site-packages/flup-1.0.2-py2.7.egg', '......']
>>> import flup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named flup在python2.6下,它可以在同一主机上完美运行。
Python 2.6.6 (Red Hat 4.1.2-50)
>>> import sys
>>> sys.path
['', '......', '/usr/local/lib/python2.6/site-packages/flup-1.0.1-py2.6.egg', '......']
>>> import flup
>>>知道原因是什么吗?
发布于 2017-06-21 04:56:35
较新版本的flup放弃了对python2.7的支持(意外?)
您可以安装一个较旧的版本,该版本可以与以下各项配合使用:
pip install flup==1.0.3.dev-20110405发布于 2019-02-04 07:29:29
问题出在导入线程功能的更改上。flup的最新版本(在撰写本文时)是1.0.3,可以使用以下补丁进行修复:
diff -puNr flup-1.0.3/lib/python2.7/site-packages/flup/server/fcgi_base.py flup-1.0.3.fixed/lib/python2.7/site-packages/flup/server/fcgi_base.py
--- flup-1.0.3/lib/python2.7/site-packages/flup/server/fcgi_base.py 2019-02-03 23:13:24.305329000 +0000
+++ flup-1.0.3.fixed/lib/python2.7/site-packages/flup/server/fcgi_base.py 2019-02-03 23:12:12.319327934 +0000
@@ -38,11 +38,14 @@ import errno
import traceback
try:
- import _thread
+ try:
+ import _thread
+ except ImportError:
+ import thread as _thread
import threading
thread_available = True
except ImportError:
- import _dummy_thread as thread
+ import _dummy_thread as _thread
import dummy_threading as threading
thread_available = False上面,我保留了最初的行为(首先导入_thread ),然后它将回退到导入线程作为_thread。我还修复了回退选项,因为无论是谁引入了更改,都忘记了修复回退。
鉴于RHEL/CentOS7仍在运行Python2.7,这个修复需要一段时间。不幸的是,我没有找到flup的当前主页,无法将此修复程序推向上游。
发布于 2011-12-21 21:22:11
你的硬盘上真的存在/usr/local/lib/python2.7.2/lib/python2.7/site-packages/flup-1.0.2-py2.7.egg吗?实际上,如果路径没有指向任何内容,则无法找到flup模块;在这种情况下,您应该(重新)安装它。
https://stackoverflow.com/questions/8589008
复制相似问题