回答編集履歴
4
動的リンクの場合について言及
test
CHANGED
@@ -58,7 +58,11 @@
|
|
58
58
|
|
59
59
|
上記のコードで、**LZW圧縮TIFFファイルの場合** 問題の再現を確認しました。
|
60
60
|
|
61
|
-
※ 他の形式では、対応するcodecsが無いと同様のエラーが起こる可能性はあります。対象のファイル
|
61
|
+
※ 他の形式では、対応するcodecsが無いと同様のエラーが起こる可能性はあります。対象のファイル
|
62
|
+
|
63
|
+
次第。
|
64
|
+
|
65
|
+
※ もし動的リンクでdllファイル等 が必要な場合は、追加で binaries への設定が必要です。
|
62
66
|
|
63
67
|
|
64
68
|
|
3
問題の再現に用いたコードを追加
test
CHANGED
@@ -39,6 +39,26 @@
|
|
39
39
|
----
|
40
40
|
|
41
41
|
追記
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
```python
|
46
|
+
|
47
|
+
# 問題の再現に用いた最小限のコード
|
48
|
+
|
49
|
+
import tifffile
|
50
|
+
|
51
|
+
img = tifffile.imread("IN.tiff")
|
52
|
+
|
53
|
+
tifffile.imsave("OUT.tiff", img)
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
上記のコードで、**LZW圧縮TIFFファイルの場合** 問題の再現を確認しました。
|
60
|
+
|
61
|
+
※ 他の形式では、対応するcodecsが無いと同様のエラーが起こる可能性はあります。対象のファイル次第。
|
42
62
|
|
43
63
|
|
44
64
|
|
2
解決方法追記: imagecodecs._imcd を追加する
test
CHANGED
@@ -33,3 +33,59 @@
|
|
33
33
|
lzw_decode 関数は、Python の関数で ./imagecodecs/_imagecodecs.py ファイル内にありました。
|
34
34
|
|
35
35
|
C拡張ではありません。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
----
|
40
|
+
|
41
|
+
追記
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
```python
|
46
|
+
|
47
|
+
# pythonファイルで明示的インポート
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
import imagecodecs._imcd
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
もしくは
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
```
|
62
|
+
|
63
|
+
# pyinstaller のオプション or spec ファイル編集
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
--hidden-import=imagecodecs._imcd
|
68
|
+
|
69
|
+
```
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
でどうでしょう。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
----
|
78
|
+
|
79
|
+
[When Things Go Wrong -- pyinstaller のトラブルシューティング](https://pyinstaller.readthedocs.io/en/stable/when-things-go-wrong.html)
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
- `python -v` で動的に読み込まれるモジュールを調べる
|
84
|
+
|
85
|
+
- imagecodecs._shared は存在したが、imagecodecs._imcd は含まれていなかった
|
86
|
+
|
87
|
+
- dist/APP_NAME/imagecodecs/ に _imcd を追加してみる → 動作成功
|
88
|
+
|
89
|
+
- 解決策A: pyinstaller が動的インポートを探せるように、明示的 import
|
90
|
+
|
91
|
+
- 解決策B: pyinstaller のオプション/ specファイル編集で指定する
|
1
情報訂正
test
CHANGED
@@ -21,3 +21,15 @@
|
|
21
21
|
pyファイルならpyinstallerが勝手に対応してくれるはずなので、
|
22
22
|
|
23
23
|
該当箇所はC拡張や外部ライブラリになってるのではないでしょうか。
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
----
|
28
|
+
|
29
|
+
訂正
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
lzw_decode 関数は、Python の関数で ./imagecodecs/_imagecodecs.py ファイル内にありました。
|
34
|
+
|
35
|
+
C拡張ではありません。
|