pip install scrapy --upgrade Requirement already up-to-date: scrapy in c-6ren">
gpt4 book ai didi

python - 从源安装 lxml 时为 "IOError: [Errno ftp error] 200 Type set to I"

转载 作者:太空宇宙 更新时间:2023-11-04 00:45:30 24 4
gpt4 key购买 nike

这是我的错误:

C:\WINDOWS\system32>pip install scrapy --upgrade

Requirement already up-to-date: scrapy in c:\python27\lib\site-packages\scrapy-1.2.0-py2.7.egg
Requirement already up-to-date: Twisted>=10.0.0 in c:\python27\lib\site-packages (from scrapy)
Requirement already up-to-date: w3lib>=1.15.0 in c:\python27\lib\site-packages (from scrapy)
Requirement already up-to-date: queuelib in c:\python27\lib\site-packages (from scrapy)

Collecting lxml (from scrapy)

Using cached lxml-3.6.4.tar.gz

Complete output from command python setup.py egg_info:
Building lxml version 3.6.4.
Retrieving "ftp://ftp.zlatkovic.com/pub/libxml/libxslt-1.1.26.win32.zip" to "libs\libxslt-1.1.26.win32.zip"
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:\users\thezm\appdata\local\temp\pip-build-y3m3fl\lxml\setup.py", line 233, in <module>
**setup_extra_options()
File "c:\users\thezm\appdata\local\temp\pip-build-y3m3fl\lxml\setup.py", line 144, in setup_extra_options
STATIC_CFLAGS, STATIC_BINARIES)
File "setupinfo.py", line 55, in ext_modules
OPTION_DOWNLOAD_DIR, static_include_dirs, static_library_dirs)
File "buildlibxml.py", line 95, in get_prebuilt_libxml2xslt
libs = download_and_extract_zlatkovic_binaries(download_dir)
File "buildlibxml.py", line 55, in download_and_extract_zlatkovic_binaries
urlretrieve(srcfile, destfile)
File "c:\python27\lib\urllib.py", line 98, in urlretrieve
return opener.retrieve(url, filename, reporthook, data)
File "c:\python27\lib\urllib.py", line 245, in retrieve
fp = self.open(url, data)
File "c:\python27\lib\urllib.py", line 213, in open
return getattr(self, name)(url)
File "c:\python27\lib\urllib.py", line 558, in open_ftp
(fp, retrlen) = self.ftpcache[key].retrfile(file, type)
File "c:\python27\lib\urllib.py", line 906, in retrfile
conn, retrlen = self.ftp.ntransfercmd(cmd)
File "c:\python27\lib\ftplib.py", line 334, in ntransfercmd
host, port = self.makepasv()
File "c:\python27\lib\ftplib.py", line 312, in makepasv
host, port = parse227(self.sendcmd('PASV'))
File "c:\python27\lib\ftplib.py", line 830, in parse227
raise error_reply, resp
IOError: [Errno ftp error] 200 Type set to I

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in c:\users\thezm\appdata\local\temp\pip-build-y3m3fl\lxml\

我该如何解决?

最佳答案

这是由于 a bug in ftplib and/or urllib : FTP 响应 226 被忽略,导致客户端错误地将进一步的传入响应与传出命令匹配。

我做了一些挖掘,得出的结论是 urllib 不能像现在这样用 ftplib 完全修复。不过,您可以使用 urllib.py 的以下补丁来解决此特定问题(差异适用于 Python 2.7.12):

--- a/urllib.py Sat Jun 25 22:46:20 2016
+++ b/urllib.py Sat Dec 10 00:20:48 2016
@@ -927,7 +927,7 @@
self.busy = 1
ftpobj = addclosehook(conn.makefile('rb'), self.file_close)
self.refcount += 1
- conn.close()
+ #conn.close()
# Pass back both a suitably decorated object and a retrieval length
return (ftpobj, retrlen)

@@ -940,7 +940,14 @@
self.real_close()

def file_close(self):
+ import ftplib
self.endtransfer()
+ #Process the 226 transfer complete response
+ try:
+ self.ftp.voidresp()
+ except ftplib.error_temp as msg:
+ # transfer is aborted by urllib when some other exception has happened
+ if msg.args[0][:3] != '426': raise
self.refcount -= 1
if self.refcount <= 0 and not self.keepalive:
self.real_close()
@@ -990,15 +997,13 @@
self.hookargs = hookargs

def close(self):
- try:
- closehook = self.closehook
- hookargs = self.hookargs
- if closehook:
- self.closehook = None
- self.hookargs = None
- closehook(*hookargs)
- finally:
- addbase.close(self)
+ addbase.close(self)
+ closehook = self.closehook
+ hookargs = self.hookargs
+ if closehook:
+ self.closehook = None
+ self.hookargs = None
+ closehook(*hookargs)


class addinfo(addbase):

关于python - 从源安装 lxml 时为 "IOError: [Errno ftp error] 200 Type set to I",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com