質問編集履歴
2
詳細な情報を追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -81,3 +81,7 @@
|
|
81
81
|
sub.py内で同じ階層のディレクトリからcsvファイルを読み込むようにしていることが原因でしょうか。
|
82
82
|
|
83
83
|
どのように書き換えればcsvファイルをアプリでも読み込む事ができるようになるでしょうか。
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
pythonは3.6.6を使用しています。
|
1
エラーメッセージや、実行方法を詳しくしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,13 +1,83 @@
|
|
1
|
-
pyinstallerを用いてpythonスクリプトを
|
1
|
+
pyinstallerを用いてpythonスクリプトをアプリ化しようとしています。
|
2
2
|
|
3
|
-
そこで自分が
|
3
|
+
そこで自分がアプリ化するプログラム内ではcsvファイルを用いるのですが、csvファイルをアプリ化した後に読み込む方法がわかりません。
|
4
4
|
|
5
|
+
pyinstallerでアプリ化する前はcsvファイルを読みこみプログラムを実行できるのですが、アプリ化した後では実行する事ができません。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
自分の作っているプログラムのディレクトリ構成は以下の通りです。
|
10
|
+
|
11
|
+
file
|
12
|
+
|
13
|
+
|-main.py
|
14
|
+
|
15
|
+
|-sub.py
|
16
|
+
|
17
|
+
|-sub2.py
|
18
|
+
|
19
|
+
|-*.csv
|
20
|
+
|
21
|
+
|
22
|
+
|
5
|
-
|
23
|
+
mainスクリプトの中でsub.pyとsub2.pyをimportして使っており、sub.py内でcsvファイルを読み込ませて動作を行なっています。
|
24
|
+
|
25
|
+
csvファイルをsub.pyにおいて読み込ませるには下記のように記述しており、カレントディレクリからそのまま読み込むことを想定しています。
|
6
26
|
|
7
27
|
```python
|
8
28
|
|
9
|
-
|
29
|
+
with open("*.csv", "r") as f:
|
10
30
|
|
11
31
|
```
|
12
32
|
|
33
|
+
pyinstallerの性質から、main.pyのみを指定して下記のように入力してアプリ化させました。
|
34
|
+
|
35
|
+
コンパイルは以下のように行なっています。
|
36
|
+
|
37
|
+
```
|
38
|
+
|
39
|
+
pyinstaller --windowed main.py
|
40
|
+
|
41
|
+
```
|
42
|
+
|
43
|
+
これでdistファイル内に生成されたアプリを実行しようとすると何もおこらないため、アプリの「パッケージの内容を表示」させ、その中にあるUnix実行ファイルのmainを開いてやると、次のエラーがまず表示されました。
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
File "site-packages/PyInstaller/loader/rthooks/pyi_rth__tkinter.py", line 28, in <module>
|
48
|
+
|
49
|
+
FileNotFoundError: Tcl data directory "/Users/~~~/Desktop/file/dist/main.app/Contents/MacOS/tcl" not found.
|
50
|
+
|
51
|
+
[68860] Failed to execute script pyi_rth__tkinter
|
52
|
+
|
53
|
+
```
|
54
|
+
|
55
|
+
これと同様に、tclがtkに変わったエラーも表示されたので、MacOS下にtclとtkという名前のファイルを作ったところこのエラーは消えました。次に出てきたエラーがcsvファイルの読み込みに関するもので以下のエラーが表示されました。
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
File "main.py", line 5, in <module>
|
60
|
+
|
61
|
+
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
|
62
|
+
|
63
|
+
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
|
64
|
+
|
65
|
+
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
|
66
|
+
|
67
|
+
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
|
68
|
+
|
69
|
+
exec(bytecode, module.__dict__)
|
70
|
+
|
71
|
+
File "sub.py", line 4, in <module>
|
72
|
+
|
73
|
+
FileNotFoundError: [Errno 2] No such file or directory: '*.csv'
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
*.csvファイルを読み込むことができていないようだったので様々なディレクトリにcsvファイルを配置したのですが、このエラーは消えませんでした
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
sub.py内で同じ階層のディレクトリからcsvファイルを読み込むようにしていることが原因でしょうか。
|
82
|
+
|
13
|
-
どのよう
|
83
|
+
どのように書き換えればcsvファイルをアプリでも読み込む事ができるようになるでしょうか。
|