Python 7z Pyunpack 类型错误
Python 7z Pyunpack TypeError
我在使用 Pyunpack 时遇到了一些问题。
变量thing
是7z文件的路径
from pyunpack import Archive
Archive(thing).extractall(str(thing[0:thing.rfind('/')]))
此代码旨在将 7z 文件提取到其目录中。
在本例中,thing
是一个相对路径:
./relative/path/my_7z_file.7z
这 returns 一个模糊的 TypeError:
Traceback (most recent call last):
File "importItAll.py", line 33, in <module>
Archive(thing).extractall(str(thing[0:thing.rfind('/')]))
File "/usr/local/lib/python2.7/dist-packages/pyunpack/__init__.py", line 74, in extractall
self.extractall_patool(directory, patool_path)
File "/usr/local/lib/python2.7/dist-packages/pyunpack/__init__.py", line 41, in extractall_patool
'--outdir=' + directory,
File "/usr/local/lib/python2.7/dist-packages/easyprocess/__init__.py", line 108, in __init__
self.cmd_as_string = ' '.join(self.cmd) # TODO: not perfect
TypeError: sequence item 1: expected string, NoneType found
查看库的 pyunpack.Archive code. It would appear you are missing the patool 依赖项的代码。这似乎是 pyunpack 中的一个错误,它将 return 一个 None 用于函数,而不是给出可用的错误消息:
def _exepath(cmd):
for p in os.environ['PATH'].split(os.pathsep):
fullp = os.path.join(p, cmd)
if os.access(fullp, os.X_OK):
return fullp
这是 python 中没有 return 的任何函数的默认行为。使用 pip install patool
或 easy_install patool
安装 patool 依赖项应该可以解决问题。
我在使用 Pyunpack 时遇到了一些问题。
变量thing
是7z文件的路径
from pyunpack import Archive
Archive(thing).extractall(str(thing[0:thing.rfind('/')]))
此代码旨在将 7z 文件提取到其目录中。
在本例中,thing
是一个相对路径:
./relative/path/my_7z_file.7z
这 returns 一个模糊的 TypeError:
Traceback (most recent call last):
File "importItAll.py", line 33, in <module>
Archive(thing).extractall(str(thing[0:thing.rfind('/')]))
File "/usr/local/lib/python2.7/dist-packages/pyunpack/__init__.py", line 74, in extractall
self.extractall_patool(directory, patool_path)
File "/usr/local/lib/python2.7/dist-packages/pyunpack/__init__.py", line 41, in extractall_patool
'--outdir=' + directory,
File "/usr/local/lib/python2.7/dist-packages/easyprocess/__init__.py", line 108, in __init__
self.cmd_as_string = ' '.join(self.cmd) # TODO: not perfect
TypeError: sequence item 1: expected string, NoneType found
查看库的 pyunpack.Archive code. It would appear you are missing the patool 依赖项的代码。这似乎是 pyunpack 中的一个错误,它将 return 一个 None 用于函数,而不是给出可用的错误消息:
def _exepath(cmd):
for p in os.environ['PATH'].split(os.pathsep):
fullp = os.path.join(p, cmd)
if os.access(fullp, os.X_OK):
return fullp
这是 python 中没有 return 的任何函数的默认行为。使用 pip install patool
或 easy_install patool
安装 patool 依赖项应该可以解决问题。