我正在尝试制作简单的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"]
}
},
)
我必须解决的第一个问题是硒包中缺少文件(webdriver.xpi 和 webdriver_prefs.json),但我在手动编译后成功地将它们包含在库中.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
。
如果这不能解决您的问题,请在您的计算机中搜索名称为"编码"的文件夹。
find / -type d -name "encodings"
,它打印具有名为"encodings"的文件夹的目录列表。
删除所有不指向正在使用的 python 的目录。
rm -rf <directory>
用Python 3.6安装Anaconda时,我遇到了同样的错误。通过添加指向 Python 安装位置的环境变量"PYTHONPATH"可以解决此错误。
我参考以下链接,
Py_Initialize失败 - 无法加载文件系统编解码器
蟒蛇