質問編集履歴

2

詳細な情報を追加しました

2019/03/18 09:09

投稿

vaitarika
vaitarika

スコア29

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

エラーメッセージや、実行方法を詳しくしました。

2019/03/18 09:09

投稿

vaitarika
vaitarika

スコア29

test CHANGED
File without changes
test CHANGED
@@ -1,13 +1,83 @@
1
- pyinstallerを用いてpythonスクリプトをexe化しようとしています。
1
+ pyinstallerを用いてpythonスクリプトをアプリ化しようとしています。
2
2
 
3
- そこで自分がexe化するプログラム内ではcsvファイルを用いるのですが、csvファイルをexe化した後に読み込む方法がわかりません。
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
- そのままexe化したいスクリプトpyinstallerを実行すると次のエラーが出しまうため、csvファイル読み込ないと思われます。
23
+ mainスクリプトの中でsub.pyとsub2.pyをimport使っておりsub.py内でcsvファイル読み込ませ動作を行っています。
24
+
25
+ csvファイルをsub.pyにおいて読み込ませるには下記のように記述しており、カレントディレクリからそのまま読み込むことを想定しています。
6
26
 
7
27
  ```python
8
28
 
9
- FileNotFoundError: [Errno 2] No such file or directory:'/~~/*.csv'
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
- どのような操作を行えばcsvファイルを読み込むことができるでしょうか。
83
+ どのように書き換ばcsvファイルをアプリでも読み込むができるようになるでしょうか。