簡體   English   中英

致命的 Python 錯誤:Py_Initialize:無法加載文件系統編解碼器。 導入錯誤:沒有名為“編碼”的模塊

[英]Fatal Python error: Py_Initialize: unable to load the file system codec. ImportError: No module named 'encodings'

我正在嘗試制作簡單的 python 程序,該程序打開網頁列表供用戶從站點手動下載報告。 我以前沒有任何准備 exe 文件的經驗..而且我只是在學習 python 編碼的過程。 所有這些都是在 Windows 7 x64 上完成的

這是我的python代碼:

#!C:/Python34/python.exe -u

from splinter import *
import time
import os
import csv

#----------------------------------
raporty = []
with open('../raporty.csv', newline='') as csvfile:
    contents = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in contents:
        r = ', '.join(row)
        r = r.replace(',','')
        raporty.append(r)

#--not implemented yet
zmienne = []
with open('../zmienne.csv', newline='') as csvfile:
    contents = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in contents:
        r = ', '.join(row)
        r = r.replace(',','')
        zmienne.append(r)

print("start")
browser = Browser()

#----------------LOGIN------------------
browser.visit('https://xxxx')
print(browser.title)
if browser.title == "xxxxxxxxxxxx":
    element = browser.find_by_name('login').first
    element.value = "xxxx"
    element2 = browser.find_by_name('password').first
    element2.value = "xxxx"
    browser.find_by_value('sign in').click()

time.sleep(5)

#----------------------------------
j = 1
for i in raporty:
    webpage = 'webpage_link'
    print("text" + i)
    browser.visit(webpage)
    j += 1

    if j > 15:
        time.sleep(j)
    else:
        time.sleep(12)

我的 setup.py 文件如下所示:

from distutils.core import setup
import py2exe

setup(
    console=['Final.py'],
    options={
            "py2exe":{
                    "skip_archive": True,
                    "unbuffered": True,
                    "optimize": 2,
                    "packages": ["encodings", "splinter"]
            }
    },
)

我必須解決的第一個問題是 selenium 包中丟失的文件(webdriver.xpi 和 webdriver_prefs.json),但我手動編譯后已成功將它們包含到 library.rar 文件中。 不幸的是,在運行我的文件后,我收到消息:

Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'

設置: MAC OSX ANACONDA

當安裝了多個版本的 python 或存在部分刪除的環境時,就會發生這種情況,即只刪除包/安裝,而不是路徑變量。

需要提前檢查的事項:

echo $PYTHONHOME
echo $PYTHONPATH

如果沒有,請使用更新.bashrc.bash_profile來設置環境變量

export PYTHONHOME="/Users/<user>/anaconda3/"
export PYTHONPATH="${PYTHONHOME}/bin"

要在當前 shell 中設置這些變量,請運行source .bashrc

如果這不能解決您的問題,請在您的機器中搜索名稱為“encodings”的文件夾。

find / -type d -name "encodings"打印具有名為 "encodings" 的文件夾的目錄列表。

刪除所有未指向正在使用的 python 的目錄。

rm -rf <directory>

當我使用 Python 3.6 安裝 Anaconda 時,我遇到了同樣的錯誤。 通過添加指向 Python 安裝位置的環境變量“PYTHONPATH”來解決該錯誤。

我參考以下鏈接,

Py_Initialize 失敗 - 無法加載文件系統編解碼器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM