Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OSError: -2 when decoding a tiff_lzw file #4237

Closed
kmilos opened this issue Nov 28, 2019 · 50 comments
Closed

OSError: -2 when decoding a tiff_lzw file #4237

kmilos opened this issue Nov 28, 2019 · 50 comments
Labels
Anaconda Issues with Anaconda's Pillow TIFF Windows
Projects

Comments

@kmilos
Copy link
Contributor

kmilos commented Nov 28, 2019

This is with pillow 6.2.1 on

Python 3.7.3 | packaged by conda-forge | (default, Jul 1 2019, 22:01:29) [MSC v.1900 64 bit (AMD64)]

Seems libtiff is found without a problem, but decoding fails:

In [5]: dat = img.getdata()
have fileno, calling fileno version of the decoder.
Traceback (most recent call last):

  File "<ipython-input-5-d82315236633>", line 1, in <module>
    dat = img.getdata()

  File "C:\Users\kmilos\.conda\envs\dev\lib\site-packages\PIL\Image.py", line 1304, in getdata
    self.load()

  File "C:\Users\kmilos\.conda\envs\dev\lib\site-packages\PIL\TiffImagePlugin.py", line 1097, in load
    return self._load_libtiff()

  File "C:\Users\kmilos\.conda\envs\dev\lib\site-packages\PIL\TiffImagePlugin.py", line 1209, in _load_libtiff
    raise IOError(err)

OSError: -2


In [6]: dat = img.getdata()

In [7]: print(dat)
<ImagingCore object at 0x000001FC04A55DB0>

Also note that on the second attempt I get an object back, bit if I try to convert to an array, it is filled with zeros, so issue #3863 is not really closed for me.

No problems if I use 'TIFF' or 'TIFF-FI' formats via imageio, but 'TIFF-PIL' fails with the same error.

@radarhere
Copy link
Member

Could you provide the image that is causing the problem?

@kmilos
Copy link
Contributor Author

kmilos commented Nov 28, 2019

Happens also with this tiff_adobe_deflate compressed mandrill.zip, so not limited to tiff_lzw... Maybe related to the combination of multiple strips w/ compression?

@radarhere
Copy link
Member

Loading the mandrill image, I'm unable to replicate using Pillow 6.2.1 with Python 3.7.5 on macOS 10.15.

from PIL import Image
im = Image.open('mandrill.tif')
im.load()

@kmilos
Copy link
Contributor Author

kmilos commented Dec 2, 2019

On Windows it is line 1189 of tiffimageplugin.py where the problem occurs

n, err = decoder.decode(b"fpfp")

results in n=-1 and err=-2

@radarhere
Copy link
Member

I'm also unable to replicate with 6.2.1 on AppVeyor Windows or master on GHA Windows.

@kmilos
Copy link
Contributor Author

kmilos commented Dec 6, 2019

I'm now suspecting this might be due to Anaconda building against new libtiff 4.1.0...

Your test is still w/ 4.0.10? Indeed, I don't see a problem if I try the wheel from pypi statically linked against 4.0.10.

@radarhere
Copy link
Member

Hmm, unfortunately no, I have now tried Pillow 6.2.1 on AppVeyor Windows with libtiff 4.1.0, and I am still unable to reproduce.

@kmilos
Copy link
Contributor Author

kmilos commented Dec 9, 2019

I have reproduced on a second Windows x64 machine, also set up with Anaconda... I reported the issue for the conda-forge package as conda-forge/pillow-feedstock#68

@kmilos
Copy link
Contributor Author

kmilos commented Dec 9, 2019

FWIW, I drilled down to 'IMAGING_CODEC_BROKEN` being returned from ImagingLibTiffDecode() but no idea why for now (don't think I'll manage a debug build any time soon...)

@cmlyldz
Copy link

cmlyldz commented Dec 11, 2019

Hello, I have same problem also.

  File "D:\ProgramData\Anaconda3\envs\spyder\lib\site-packages\PIL\TiffImagePlugin.py", line 1209, in _load_libtiff
    raise IOError(err)

OSError: -2

Do you find any solution?

@hugovk
Copy link
Member

hugovk commented Dec 12, 2019

conda-forge/pillow-feedstock#69 (comment) has a workaround:

I can reproduce that on Windows. Downgrading libtiff to 4.0.10 (conda install libtiff=4.0.10) works. Investigating it...

PS: it works fine on macOS and Linux, only Windows is failing.

@cgohlke
Copy link
Contributor

cgohlke commented Dec 27, 2019

It looks like this issue is due to libtiff-4.1.0 CMake builds on Windows now unconditionally enabling USE_WIN32_FILEIO:

https://gitlab.com/libtiff/libtiff/commit/59eb35172f8dc9a46469ad0e4877f9c88ab796cd

I built Pillow-git head against a CMake static build of libtiff-4.1.0 and get 51 test failures. Disabling USE_WIN32_FILEIO in CMakeLists.txt fixes all the Pillow test failures.

@cgohlke
Copy link
Contributor

cgohlke commented Dec 28, 2019

IIUC, the TIFFFdOpen functions from tif_unix.c and tif_win32.c are not compatible. The first needs a fileno from the C runtime (py_file_object.fileno()), the latter a Windows file handle (msvcrt.get_osfhandle(py_file_object.fileno()))...

@cgohlke
Copy link
Contributor

cgohlke commented Dec 29, 2019

I submitted an issue to the libtiff project: https://gitlab.com/libtiff/libtiff/issues/173

@kmilos
Copy link
Contributor Author

kmilos commented Dec 30, 2019

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Jan 3, 2020

Trying to get windows patched up on conda-forge conda-forge/libtiff-feedstock#49

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Jan 4, 2020

@cgohlke the patch definitely broke opencv on conda forge

So strange, I don't know opencv does it:

conda install -c conda-forge opencv libtiff=4.0 python=3.7 pillow

Then:

from PIL import Image
im = Image.open('hopper_lzw.tif')
im.load()
import cv2
cv2.imread('hopper_lzw.tif')

both work.

Now, install the unpatched 4.1

conda install libtiff=4.1=*1

PIL fails, opencv works.

Now, install the patched up 4.1

conda install libtiff=4.1=*2

PIL works, opencv doesn't.

@cgohlke
Copy link
Contributor

cgohlke commented Jan 4, 2020

That patch is not complete! It merely fixes/demonstrates the Pillow failures. There are other places in tif_win32.c that would need to be patched for libtiff to work...

My solution for now is to patch tiff-4.1.0 CMakeLists.txt in line ~601 not to use tif_win32.c:

set(win32_io FALSE)

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Jan 4, 2020

thanks, I made a more thorough patch and it seems to be working with:

  • Pillow
  • opencv
  • tifffile

All previously comipled, most updated versions of the packages available on conda-forge.

I'll likely try to upload the package to my own conda channel mark.harfouche

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Jan 4, 2020

You should be able to test the packages ending in _4 for windows when they finishing uploading in maybe something like 10 mins:
https://anaconda.org/mark.harfouche/libtiff/files

@darienmorrow
Copy link

darienmorrow commented Mar 16, 2020

I have also run into a similar problem on Windows 10, Python 3.7.6, Pillow 7.0.0.

from PIL import Image
p = 'test.tif'
img = Image.open(p)
img_copy = img.copy()

yields:

Traceback (most recent call last):

  File "C:\Users\darien\Desktop\test.py", line 5, in <module>
    img_copy = img.copy()

  File "C:\ProgramData\Anaconda3\lib\site-packages\PIL\Image.py", line 1084, in copy
    self.load()

  File "C:\ProgramData\Anaconda3\lib\site-packages\PIL\TiffImagePlugin.py", line 1070, in load
    return self._load_libtiff()

  File "C:\ProgramData\Anaconda3\lib\site-packages\PIL\TiffImagePlugin.py", line 1182, in _load_libtiff
    raise OSError(err)

OSError: -2

Is this issue still being worked on?

test.zip

@hmaarrfk
Copy link
Contributor

i wouldn't necessarily pin so hard, but you could maybe require a specific build version? though that is more fragile.

Even if i did come out with build #5, then it wouldn't necessarily fix things for you.... you would have to dependo n build 5. :/

@trippingbillies41
Copy link

Is this a common error?

anaconda3\lib\site-packages\PIL\TiffImagePlugin.py", line 1182, in _load_libtiff
raise OSError(err)

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 2, 2020

can you provide the output of conda -list

@trippingbillies41
Copy link

usage: conda-script.py [-h] [-V] command ...
conda-script.py: error: the following arguments are required: command

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 4, 2020

sorry, no dash. I truely appologize.

conda list

@trippingbillies41
Copy link

trippingbillies41 commented Apr 6, 2020

# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0
alabaster                 0.7.12                   py37_0
anaconda                  2020.02                  py37_0
anaconda-client           1.7.2                    py37_0
anaconda-navigator        1.9.12                   py37_0
anaconda-project          0.8.4                      py_0
argh                      0.26.2                   py37_0
asn1crypto                1.3.0                    py37_0
astroid                   2.3.3                    py37_0
astropy                   4.0              py37he774522_0
atomicwrites              1.3.0                    py37_1
attrs                     19.3.0                     py_0
autopep8                  1.4.4                      py_0
babel                     2.8.0                      py_0
backcall                  0.1.0                    py37_0
backports                 1.0                        py_2
backports.functools_lru_cache 1.6.1                      py_0
backports.shutil_get_terminal_size 1.0.0                    py37_2
backports.tempfile        1.0                        py_1
backports.weakref         1.0.post1                  py_1
bcrypt                    3.1.7            py37he774522_0
beautifulsoup4            4.8.2                    py37_0
bitarray                  1.2.1            py37he774522_0
bkcharts                  0.2                      py37_0
blas                      1.0                         mkl
bleach                    3.1.0                    py37_0
blosc                     1.16.3               h7bd577a_0
bokeh                     1.4.0                    py37_0
boto                      2.49.0                   py37_0
bottleneck                1.3.2            py37h2a96729_0
bzip2                     1.0.8                he774522_0
ca-certificates           2020.1.1                      0
certifi                   2019.11.28               py37_0    conda-forge
cffi                      1.14.0           py37h7a1dbc1_0
chardet                   3.0.4                 py37_1003
click                     7.0                      py37_0
cloudpickle               1.3.0                      py_0
clyent                    1.2.2                    py37_1
colorama                  0.4.3                      py_0
comtypes                  1.1.7                    py37_0
conda                     4.8.3            py37hc8dfbb8_1    conda-forge
conda-build               3.18.11                  py37_0
conda-env                 2.6.0                         1
conda-package-handling    1.6.0            py37h62dcd97_0
conda-verify              3.4.2                      py_1
console_shortcut          0.1.1                         4
contextlib2               0.6.0.post1                py_0
cryptography              2.8              py37h7a1dbc1_0
curl                      7.68.0               h2a8f88b_0
cycler                    0.10.0                   py37_0
cython                    0.29.15          py37ha925a31_0
cytoolz                   0.10.1           py37he774522_0
dask                      2.11.0                     py_0
dask-core                 2.11.0                     py_0
decorator                 4.4.1                      py_0
defusedxml                0.6.0                      py_0
diff-match-patch          20181111                   py_0
distributed               2.11.0                   py37_0
docutils                  0.16                     py37_0
entrypoints               0.3                      py37_0
et_xmlfile                1.0.1                    py37_0
fastcache                 1.1.0            py37he774522_0
filelock                  3.0.12                     py_0
flake8                    3.7.9                    py37_0
flake8-polyfill           1.0.2                      py_0    conda-forge
flake8-quotes             3.0.0              pyh9f0ad1d_0    conda-forge
flask                     1.1.1                      py_0
freetype                  2.9.1                ha9979f8_1
fsspec                    0.6.2                      py_0
future                    0.18.2                   py37_0
get_terminal_size         1.0.0                h38e98db_0
gevent                    1.4.0            py37he774522_0
glew                      2.1.0                he025d50_0    conda-forge
glob2                     0.7                        py_0
greenlet                  0.4.15           py37hfa6e2cd_0
h5py                      2.10.0           py37h5e291fa_0
hdf5                      1.10.4               h7ebc959_0
heapdict                  1.0.1                      py_0
html5lib                  1.0.1                    py37_0
hypothesis                5.5.4                      py_0
icc_rt                    2019.0.0             h0cc432a_1
icu                       58.2                 ha66f8fd_1
idna                      2.8                      py37_0
imagecodecs-lite          2019.12.3        py37h8055547_0    conda-forge
imageio                   2.6.1                    py37_0
imagesize                 1.2.0                      py_0
importlib_metadata        1.5.0                    py37_0
intel-openmp              2020.0                      166
intervaltree              3.0.2                      py_0
ipykernel                 5.1.4            py37h39e3cac_0
ipython                   7.12.0           py37h5ca1d4c_0
ipython_genutils          0.2.0                    py37_0
ipywidgets                7.5.1                      py_0
isort                     4.3.21                   py37_0
itsdangerous              1.1.0                    py37_0
jdcal                     1.4.1                      py_0
jedi                      0.14.1                   py37_0
jinja2                    2.11.1                     py_0
joblib                    0.14.1                     py_0
jpeg                      9b                   hb83a4c4_2
json5                     0.9.1                      py_0
jsonschema                3.2.0                    py37_0
jupyter                   1.0.0                    py37_7
jupyter_client            5.3.4                    py37_0
jupyter_console           6.1.0                      py_0
jupyter_core              4.6.1                    py37_0
jupyterlab                1.2.6              pyhf63ae98_0
jupyterlab_server         1.0.6                      py_0
keyring                   21.1.0                   py37_0
kivy                      1.11.1           py37h6e11d57_2    conda-forge
kiwisolver                1.1.0            py37ha925a31_0
krb5                      1.17.1               hc04afaa_0
lazy-object-proxy         1.4.3            py37he774522_0
libarchive                3.3.3                h0643e63_5
libcurl                   7.68.0               h2a8f88b_0
libiconv                  1.15                 h1df5818_7
liblief                   0.9.0                ha925a31_2
libpng                    1.6.37               h2a8f88b_0
libsodium                 1.0.16               h9d3ae62_0
libspatialindex           1.9.3                h33f27b4_0
libssh2                   1.8.2                h7a1dbc1_0
libtiff                   4.1.0                h56a325e_0
libxml2                   2.9.9                h464c3ec_0
libxslt                   1.1.33               h579f668_0
llvmlite                  0.31.0           py37ha925a31_0
locket                    0.2.0                    py37_1
lxml                      4.5.0            py37h1350720_0
lz4-c                     1.8.1.2              h2fa13f4_0
lzo                       2.10                 h6df0209_2
m2w64-gcc-libgfortran     5.3.0                         6
m2w64-gcc-libs            5.3.0                         7
m2w64-gcc-libs-core       5.3.0                         7
m2w64-gmp                 6.1.0                         2
m2w64-libwinpthread-git   5.0.0.4634.697f757               2
markupsafe                1.1.1            py37he774522_0
matplotlib                3.1.3                    py37_0
matplotlib-base           3.1.3            py37h64f37c6_0
mccabe                    0.6.1                    py37_1
menuinst                  1.4.16           py37he774522_0
mistune                   0.8.4            py37he774522_0
mkl                       2020.0                      166
mkl-service               2.3.0            py37hb782905_0
mkl_fft                   1.0.15           py37h14836fe_0
mkl_random                1.1.0            py37h675688f_0
mock                      4.0.1                      py_0
more-itertools            8.2.0                      py_0
mpmath                    1.1.0                    py37_0
msgpack-python            0.6.1            py37h74a9793_1
msys2-conda-epoch         20160418                      1
multipledispatch          0.6.0                    py37_0
navigator-updater         0.2.1                    py37_0
nbconvert                 5.6.1                    py37_0
nbformat                  5.0.4                      py_0
networkx                  2.4                        py_0
nltk                      3.4.5                    py37_0
nose                      1.3.7                    py37_2
notebook                  6.0.3                    py37_0
numba                     0.48.0           py37h47e9c7a_0
numexpr                   2.7.1            py37h25d0782_0
numpy                     1.18.1           py37h93ca92e_0
numpy-base                1.18.1           py37hc3f5095_1
numpydoc                  0.9.2                      py_0
olefile                   0.46                     py37_0
openpyxl                  3.0.3                      py_0
openssl                   1.1.1d               he774522_4
os                        0.1.4                         0    jmcmurray
packaging                 20.1                       py_0
pandas                    1.0.1            py37h47e9c7a_0
pandoc                    2.2.3.2                       0
pandocfilters             1.4.2                    py37_1
paramiko                  2.7.1                      py_0
parso                     0.5.2                      py_0
partd                     1.1.0                      py_0
path                      13.1.0                   py37_0
path.py                   12.4.0                        0
pathlib2                  2.3.5                    py37_0
pathtools                 0.1.2                      py_1
patsy                     0.5.1                    py37_0
pdf2image                 1.12.1                     py_0    conda-forge
pep8                      1.7.1                    py37_0
pep8-naming               0.10.0             pyh9f0ad1d_0    conda-forge
pexpect                   4.8.0                    py37_0
pickleshare               0.7.5                    py37_0
pillow                    7.0.0            py37hcc1f983_0    anaconda
pip                       20.0.2                   py37_1
pkginfo                   1.5.0.1                  py37_0
pluggy                    0.13.1                   py37_0
ply                       3.11                     py37_0
powershell_shortcut       0.0.1                         3
prometheus_client         0.7.1                      py_0
prompt_toolkit            3.0.3                      py_0
psutil                    5.6.7            py37he774522_0
py                        1.8.1                      py_0
py-lief                   0.9.0            py37ha925a31_2
pycodestyle               2.5.0                    py37_0
pycosat                   0.6.3            py37he774522_0
pycparser                 2.19                     py37_0
pycrypto                  2.6.1            py37hfa6e2cd_9
pycurl                    7.43.0.5         py37h7a1dbc1_0
pydocstyle                4.0.1                      py_0
pyflakes                  2.1.1                    py37_0
pygments                  2.5.2                      py_0
pylint                    2.4.4                    py37_0
pynacl                    1.3.0            py37h62dcd97_0
pyodbc                    4.0.30           py37ha925a31_0
pyopenssl                 19.1.0                   py37_0
pyparsing                 2.4.6                      py_0
pyqt                      5.9.2            py37h6538335_2
pyreadline                2.1                      py37_1
pyrsistent                0.15.7           py37he774522_0
pysocks                   1.7.1                    py37_0
pytables                  3.6.1            py37h1da0976_0
pytesseract               0.3.3              pyh8c360ce_0    conda-forge
pytest                    5.3.5                    py37_0
pytest-arraydiff          0.3              py37h39e3cac_0
pytest-astropy            0.8.0                      py_0
pytest-astropy-header     0.1.2                      py_0
pytest-doctestplus        0.5.0                      py_0
pytest-openfiles          0.4.0                      py_0
pytest-remotedata         0.3.2                    py37_0
python                    3.7.6                h60c2a47_2
python-dateutil           2.8.1                      py_0
python-jsonrpc-server     0.3.4                      py_0
python-language-server    0.31.7                   py37_0
python-libarchive-c       2.8                     py37_13
python_abi                3.7                     1_cp37m    conda-forge
pytz                      2019.3                     py_0
pywavelets                1.1.1            py37he774522_0
pywin32                   227              py37he774522_1
pywin32-ctypes            0.2.0                 py37_1000
pywinpty                  0.5.7                    py37_0
pyyaml                    5.3              py37he774522_0
pyzmq                     18.1.1           py37ha925a31_0
qdarkstyle                2.8                        py_0
qt                        5.9.7            vc14h73c81de_0
qtawesome                 0.6.1                      py_0
qtconsole                 4.6.0                      py_1
qtpy                      1.9.0                      py_0
qutil                     3.2.1                         6    jmcmurray
requests                  2.22.0                   py37_1
rope                      0.16.0                     py_0
rtree                     0.9.3            py37h21ff451_0
ruamel_yaml               0.15.87          py37he774522_0
scikit-image              0.16.2           py37h47e9c7a_0
scikit-learn              0.22.1           py37h6288b17_0
scipy                     1.4.1            py37h9439919_0
sdl2                      2.0.10               h6538335_0    conda-forge
sdl2_image                2.0.2                         0    conda-forge
sdl2_mixer                2.0.4                h6538335_0    conda-forge
sdl2_ttf                  2.0.15               h4636d2b_0    conda-forge
seaborn                   0.10.0                     py_0
send2trash                1.5.0                    py37_0
setuptools                45.2.0                   py37_0
simplegeneric             0.8.1                    py37_2
singledispatch            3.4.0.3                  py37_0
sip                       4.19.8           py37h6538335_0
six                       1.14.0                   py37_0
smpeg2                    2.0.0                h6538335_1    conda-forge
snappy                    1.1.7                h777316e_3
snowballstemmer           2.0.0                      py_0
sortedcollections         1.1.2                    py37_0
sortedcontainers          2.1.0                    py37_0
soupsieve                 1.9.5                    py37_0
sphinx                    2.4.0                      py_0
sphinxcontrib             1.0                      py37_1
sphinxcontrib-applehelp   1.0.1                      py_0
sphinxcontrib-devhelp     1.0.1                      py_0
sphinxcontrib-htmlhelp    1.0.2                      py_0
sphinxcontrib-jsmath      1.0.1                      py_0
sphinxcontrib-qthelp      1.0.2                      py_0
sphinxcontrib-serializinghtml 1.1.3                      py_0
sphinxcontrib-websupport  1.2.0                      py_0
spyder                    4.0.1                    py37_0
spyder-kernels            1.8.1                    py37_0
sqlalchemy                1.3.13           py37he774522_0
sqlite                    3.31.1               he774522_0
statsmodels               0.11.0           py37he774522_0
sympy                     1.5.1                    py37_0
tbb                       2020.0               h74a9793_0
tblib                     1.6.0                      py_0
terminado                 0.8.3                    py37_0
testpath                  0.4.4                      py_0
tifffile                  2020.2.16                  py_0    conda-forge
tk                        8.6.8                hfa6e2cd_0
toolz                     0.10.0                     py_0
tornado                   6.0.3            py37he774522_3
tqdm                      4.42.1                     py_0
traitlets                 4.3.3                    py37_0
ujson                     1.35             py37hfa6e2cd_0
unicodecsv                0.14.1                   py37_0
urllib3                   1.25.8                   py37_0
vc                        14.1                 h0510ff6_4
vs2015_runtime            14.16.27012          hf0eaf9b_1
watchdog                  0.10.2                   py37_0
wcwidth                   0.1.8                      py_0
webencodings              0.5.1                    py37_1
werkzeug                  1.0.0                      py_0
wheel                     0.34.2                   py37_0
widgetsnbextension        3.5.1                    py37_0
win_inet_pton             1.1.0                    py37_0
win_unicode_console       0.5                      py37_0
wincertstore              0.2                      py37_0
winpty                    0.4.3                         4
wrapt                     1.11.2           py37he774522_0
xlrd                      1.2.0                    py37_0
xlsxwriter                1.2.7                      py_0
xlwings                   0.17.1                   py37_0
xlwt                      1.3.0                    py37_0
xmltodict                 0.12.0                     py_0
xz                        5.2.4                h2fa13f4_4
yaml                      0.1.7                hc54c509_2
yapf                      0.28.0                     py_0
zeromq                    4.3.1                h33f27b4_3
zict                      1.0.0                      py_0
zipp                      2.2.0                      py_0
zlib                      1.2.11               h62dcd97_3
zstd                      1.3.7                h508b16e_0

EDIT: Loaded the from the correct OS

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 6, 2020

it seems to me that you are using linux. Since the original issue depends on Windows, could you please open a new issue so that them maintainers of this repo can help you get going.

I don't htink you issue is related to this one.

@trippingbillies41
Copy link

Sorry, I just turned on my PC and responded. Forgot that it was about a Windows issue. I edited my comment to reflex the conda list from my Windows partition.

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 7, 2020

so there are a few things going on in your system:

  1. You are using base. You shouldn't use base, especially with conda-forge. Please attempt to create an isolated environment for your dependencies.

I Think until the motions are going through upstream, and finally trickle down, this issue won't get fixed easily, and we will have to wait for new releases of libtiff. That is likely the easiest way.

Maybe use tifffile instead?

@trippingbillies41
Copy link

I guess I still don't understand the purpose of environments. Do I make a new one for each project? I just thought adding everything to base would allow me pull any module I wanted.

@hmaarrfk
Copy link
Contributor

hmaarrfk commented Apr 7, 2020

generally, you want to have one for each project.
The issue you are facing is:

  1. A bug in the C world.
  2. The fact that the default packages you installed are not always compatible with conda-forge (especially problematic for C packages).

In either case, this isn't the right issue to discuss this (discussing environment was not part of the original issue). Do open an other one here, or probably on stack overflow or some other Q&A forum https://forum.image.sc/

@trippingbillies41
Copy link

Thanks, I'll learn about those issues!

@scimax
Copy link

scimax commented May 7, 2020

I just installed the patched version and for the moment it seems to work. Thanks, @hmaarrfk !

@nkoerb
Copy link

nkoerb commented May 19, 2020

I have the same issue on windows server 2016 with pillow 7.1.2, libtif 4.1 and conda, when I downgrade to Pillow 6.2.1 and libtiff 4.0.10 the code works.

from PIL import Image
image = Image.open('mytiff.tif')
image.show()

OSError -2

@kmilos
Copy link
Contributor Author

kmilos commented May 19, 2020

@nkoerb Only libtiff 4.1.0 build h885aae3_4 or later from conda-forge channel works, not from defaults

@nkoerb
Copy link

nkoerb commented May 20, 2020

@kmilos thanks for the info

@chibbi30j1
Copy link

How to install the patched version and uninstall the current one?

@nulano nulano mentioned this issue Aug 30, 2020
@shaibagon
Copy link

@chibbi30j1
This worked for me:

conda install libtiff=4.1.0=h885aae3_4 -c conda-forge

@radarhere
Copy link
Member

@kmilos is this resolved now, thanks to #5359?

@kmilos
Copy link
Contributor Author

kmilos commented Apr 1, 2021

I believe so, as far as ootb Pillow wheels are concerned.

@hmaarrfk conda-forge will have to re-adjust again though (either turn off Win32 I/O in Pillow > 8.2.0 with a new patch, or re-enable Win32 I/O for libtiff, Pillow, and poppler...)

@kmilos kmilos closed this as completed Apr 1, 2021
Pillow automation moved this from New Issues to Closed Apr 1, 2021
@radarhere radarhere added the TIFF label Apr 17, 2021
@aclark4life aclark4life added the Anaconda Issues with Anaconda's Pillow label May 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Anaconda Issues with Anaconda's Pillow TIFF Windows
Projects
Pillow
  
Closed
Development

Successfully merging a pull request may close this issue.