→ tzouandy2818: 我用pyinstaller打包傳給別人 就算只是hello world 08/25 11:45
→ tzouandy2818: 也會被判定為病毒 也是用了查到的所有辦法都無解 08/25 11:45
→ tzouandy2818: 所以還是能用.py就用.py吧 08/25 11:46
我原本的寫 是要寫入 log.txt,但是 一旦有寫入動作就會失敗
目前改用 win32evtlogutil win32evtlog 的套件,寫入 事件檢視器的應用程式紀錄
推 pmove: 您確定是路徑問題?有沒有可能是權限問題?另外有裝Windows 08/26 16:33
→ pmove: 內建那套以外的防毒?對了,您路徑裡頭有中文? 08/26 16:33
1. 不能完全確定是路徑問題,但是只要增加讀寫檔案功能就出錯,工作排程給的回應是路徑問題
2. 權限都是給最大,路徑上的目錄都是 everyone 權限全開
3. 路徑沒中文
4. 防毒軟體 NOD32,沒測試移除之後的狀況
※ 編輯: zbug (220.135.218.11 臺灣), 08/26/2021 21:34:45
推 lycantrope: 這error是發生在登入前執行? 沒登入有設權限也沒用 08/27 17:14
推 ncueBenson: 路徑是絕對路徑吧 工作排程器的路徑在system32 如果 08/27 18:29
→ ncueBenson: 用相對就會寫在那 08/27 18:29
推 ncueBenson: 工作排程器的路徑不在喔喔漏看內文了 當我沒說話 08/27 18:32
最後依舊是把檔案讀寫的功能放上去,依舊是透過 pyinstall 轉exe
工作排程改...先執行批次檔...再透過批次檔去執行 py轉的exe
然後就成功了...另外測試的時候 有放到 win11...被當病毒封鎖了 XDDDD
※ 編輯: zbug (220.135.218.11 臺灣), 08/27/2021 18:37:11
推 pmove: 如果把py轉的exe, 在環境變數的path裡加上該路徑試試呢? 08/27 20:39
→ lepenseur: 路徑要用相對路徑去處理 09/04 06:08
→ lepenseur: 由於你執行的位置不同,當下的工作目錄(CWD)也不同, 09/04 06:13
→ lepenseur: 你寫的路徑會有問題 09/04 06:13
→ lepenseur: 試著用這個方式寫寫看 09/04 06:14
→ lepenseur: project_root = Path(sys._MEIPASS) if getattr(sys, ' 09/04 06:15
→ lepenseur: frozen', False) else Path(__file__).absolute().pare 09/04 06:15
→ lepenseur: nts[0] 09/04 06:15
→ lepenseur: 在專案開始執行的 py 檔加入上面這一行,可以動態取得 09/04 06:17
→ lepenseur: 當前目錄的絕對路徑 09/04 06:17
→ lepenseur: 之後所有的路徑都以這個 py 檔的相對路徑去撰寫,就不 09/04 06:18
→ lepenseur: 會出錯 09/04 06:18
→ lepenseur: 像這樣 save_path = project_root / 'log' / 'log_2021 09/04 06:19
→ lepenseur: 0904.txt' 09/04 06:19
→ lepenseur: 另外,如果你執行檔是安裝在 C:\Program Files (x86) 09/04 06:25
→ lepenseur: 或 C:\Program Files 目錄中的話,要記得設定權限才 09/04 06:25
→ lepenseur: 能寫入你的檔案 09/04 06:25
→ lepenseur: 被 Windows 當成病毒,大概是因為沒有做程式碼簽署, 09/04 06:27
→ lepenseur: 但簽署憑證是要花錢買的。如果是自己使用的話,可以把 09/04 06:27
→ lepenseur: 軟體加入防毒軟體的白名單就好。 09/04 06:27
推 nsay: 如果不介意名字遠流傳,網路上有教用自然人憑證來簽署也是一 12/29 19:23
→ nsay: 種方法 12/29 19:23