У меня есть программа, которая требует распаковки сжатого архива.xz. Как распаковать файл.xz с несколькими папками/файлами внутри, за один раз? , Я прочитал, что этого можно добиться, используя lzma через pip install pyliblzma
однако кажется, что это повреждено Windows при установке через pip.
Collecting pyliblzma
Using cached https://files.pythonhosted.org/packages/17/48/5292ade507dafe573360560ba53783395587dc42eb32b347feb2ac70fc6b/pyliblzma-0.5.3.tar.bz2
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:\users\ben\appdata\local\temp\pip-install-_hmrno\pyliblzma\setup.py", line 48, in <module>
shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True).stdout.read():
File "c:\python27\lib\subprocess.py", line 347, in __init__
raise ValueError("close_fds is not supported on Windows "
ValueError: close_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr
Я также попробовал pip install pylzma
но для этого требуется компилятор Visual Studio C++ для building 'pylzma' extension error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
Pylzma для Python building 'pylzma' extension error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
building 'pylzma' extension error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpython27
Поскольку моя программа переносима и разделена между пользователями, я хочу попытаться держаться подальше от их установки отдельных двоичных файлов для использования с программой.
Есть ли другой способ взыскать.xz-архивы в Python2.7 без использования lzma, или, альтернативно, способ получить рабочую версию lzma через pip install
?
Мне удалось обойти мою проблему, используя портативную версию 7zip и используя ее интерфейс командной строки для извлечения файлов.
params = ["7zG.exe", "x", "my_filename.xz", "-ooutputdir\\"]
p = Popen(params, stdout=subprocess.PIPE)