質問するログイン新規登録

回答編集履歴

2

回答の追記

2026/05/04 05:50

投稿

hiroki-o
hiroki-o

スコア1829

answer CHANGED
@@ -66,4 +66,39 @@
66
66
 
67
67
  不明な点はコメントしてください。
68
68
 
69
- ※質問者さん以外でこれを読んでいる人がいたら、私の説明の何が悪いのか指摘していただけると嬉しいです。
69
+ ※質問者さん以外でこれを読んでいる人がいたら、私の説明の何が悪いのか指摘していただけると嬉しいです。
70
+
71
+ (追記2)
72
+ 会社のネットワークでSandboxを遮断している可能性は高いですが、私には解決できません。
73
+ teratailはどこからでも見えるので、個人PCでも試せます。
74
+
75
+ > PyInstallerの実行・及び証明書ありかの確認も 本来sandbox側で対応すべきだったんですかねぇ
76
+
77
+ Sandboxを勧めた理由は、証明書が無い環境で、証明書付き実行ファイルの動作確認をするためです。
78
+ 上記のような発言は、それを理解しているか心配になります。ご理解ください。
79
+
80
+ 確認手順を考えましたので、試してください。
81
+
82
+ 1\. 質問の3/20版のソース(証明書無し版。仮に0320.pyとする)は、PyInstallerを実行した同じコマンドプロンプトで
83
+ > py 0320.py
84
+
85
+ で実行して、syukujitsu.csvを取得できますか?
86
+
87
+ 2\. 実行できた場合、0320.pyの`import urllib.request`と`def get_Config():`の間に
88
+ ```
89
+ import certifi
90
+ print(certifi.where())
91
+ ```
92
+ を入れて、
93
+ > py 0320.py
94
+
95
+ で実行して、syukujitsu.csvを取得できますか? その際、表示されたパスはPyInstallerの`--add-data`に指定したパスと同じですか?
96
+
97
+ 3\. 現状の`D:\HOLIDAYS\HOLIDAYS.py`が質問の4/29版のソース(削除したようですが、証明書あり版)であることを確認します。
98
+ `--add-data`が2のパスであることを確認します。
99
+ buildフォルダー、distフォルダー、HOLIDAYS.specを削除して、再度PyInstallerを実行します。
100
+ 生成された実行ファイルは、その場で実行できますか? syukujitsu.csvを取得できますか?
101
+ エラーになる場合、HOLIDAYS.specの`datas=`行に出力されているパスは、2のパスと同じですか?
102
+
103
+ まずは、ここまでですね。
104
+ 不明な点はコメントしてください。

1

回答の追記

2026/04/29 20:26

投稿

hiroki-o
hiroki-o

スコア1829

answer CHANGED
@@ -40,4 +40,30 @@
40
40
  --add-data "C:\test\venv\Lib\site-packages\certifi\cacert.pem;."
41
41
  ```
42
42
 
43
- 以上で、証明書が無い環境を汚さずに実行できます。
43
+ 以上で、証明書が無い環境を汚さずに実行できます。
44
+
45
+ (追記)
46
+ Visual Studioとコマンドプロンプトで同じPython環境を見ているかどうか不明なので、今回の件からVisual Studioは除外してください。
47
+ もちろんVisual Studioをエディター&デバッガーとして使うのはいいのですが、今回の件は既に正解を提示しています。
48
+ あとは、そちらの環境で再現するだけです。
49
+
50
+ 目標
51
+ PyInstallerで生成したHOLIDAYS.exeと、config.iniの2本だけで、開発環境以外でもsyukujitsu.csvをネットから取得する。
52
+
53
+ 確認
54
+ 1. 私が提示した方法で生成したHOLIDAYS.exeは、開発環境のWindows 11で動きますか?
55
+ 1. そのHOLIDAYS.exeとconfig.iniをSandboxにコピペして動きますか?
56
+ 1. 同様にWindows Serverで動きますか?
57
+
58
+ Windows 11のSandboxは、タスクバーの検索欄にsandboxと入力して検索結果に出てくる「Windows Sandbox」を起動してください。
59
+ 初回は時間がかかるかもしれませんが、素のWindows 11(要するに証明書が無い環境)が起動します。
60
+ ちなみにSandboxは毎回まっさらな環境で起動します。
61
+ (もしかしたらHome Editionには入っていないかもしれません。Proならあります。)
62
+
63
+ 1,2で動かない場合、手順が間違っています。
64
+ 手順と言ってもPyInstallerを叩くだけなので、それを提示してください。
65
+ 1,2で動いて3で動かない場合、Windows Server特有の何かなので、こちらでは調査できません。
66
+
67
+ 不明な点はコメントしてください。
68
+
69
+ ※質問者さん以外でこれを読んでいる人がいたら、私の説明の何が悪いのか指摘していただけると嬉しいです。