无法从 xampp 命令行运行 python 程序
Posted
技术标签:
【中文标题】无法从 xampp 命令行运行 python 程序【英文标题】:Can't run python program from xampp command line 【发布时间】:2020-04-26 20:31:05 【问题描述】:我在 python 中编写了一个代码来使用 selenium 从网站上抓取一些数据。当我在系统命令行中运行此代码时,它完全可以工作。但是当我从 xampp 命令行运行它时,它会给出错误并显示此消息
Traceback(最近一次调用最后一次):文件 "C:\Users\Marajul\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\common\service.py", 第 72 行,开始 self.process = subprocess.Popen(cmd, env=self.env, 文件 "C:\Users\Marajul\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", 第 854 行,在 init 中 self._execute_child(args, 可执行文件, preexec_fn, close_fds, 文件 "C:\Users\Marajul\AppData\Local\Programs\Python\Python38-32\lib\subprocess.py", 第 1307 行,在 _execute_child 中 hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] 系统找不到文件 指定
在处理上述异常的过程中,又发生了一个异常:
Traceback(最近一次调用最后一次):文件 “C:\xampp\htdocs\Dairy\API\toph\python\a.py”,第 16 行,在 驱动程序 = Chrome(webdriver) 文件“C:\Users\Marajul\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py”, 第 73 行,在 init 中 self.service.start() 文件 "C:\Users\Marajul\AppData\Local\Programs\Python\Python38-32\lib\site-packages\selenium\webdriver\common\service.py", 第 81 行,开始 引发 WebDriverException(selenium.common.exceptions.WebDriverException:消息: 'chromedriver3.exe' 可执行文件需要在 PATH 中。请参见 https://sites.google.com/a/chromium.org/chromedriver/home
from selenium.webdriver import Chrome
import pandas as pd
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="root",
passwd="",
database="dairy"
)
mycursor = mydb.cursor()
webdriver = 'chromedriver3.exe'
driver = Chrome(webdriver)
cnt=0
while 1:
page_nb=(str)(cnt);
url = "https://toph.co/submissions/filter?author=590d7d60de14194eb555201c&start="+page_nb+"&verdict="
cnt=cnt+64
driver.get(url)
quotes = driver.find_elements_by_class_name("syncer")
if(len(quotes)==0):
break
for quote in quotes:
row=quote.find_elements_by_tag_name("td")
link=row[2].find_elements_by_tag_name('a')
time1=row[3].find_elements_by_class_name('timestamp')
time=time1[0].get_attribute('data-time')
urlp=""
if(link):
urlp=link[0].get_attribute('href')
sql1="SELECT * FROM submission WHERE id=%s AND oj='toph'"
val1 = (row[0].text,)
mycursor.execute(sql1,val1)
myresult = mycursor.fetchall()
if(len(myresult)==0):
sql="INSERT INTO submission (id,dt,link,name,ver,oj) VALUES (%s,%s,%s,%s,%s,'toph')"
val=(row[0].text,time,urlp,row[2].text,row[7].text)
mycursor.execute(sql, val)
mydb.commit()
print("successfull")
driver.close()
我不是python专家,所以请帮我解决这个问题:)
【问题讨论】:
不要发布文字图片。以纯文本形式发布错误消息 【参考方案1】:您的问题是常见的“不在路径中”类型的问题,错误消息清楚地表明了这一点:
消息:“chromedriver3.exe”可执行文件需要在 PATH 中。请看https://sites.google.com/a/chromium.org/chromedriver/home
解决方案是使用二进制文件的绝对路径(如果您可以指定)或编辑全局环境 PATH
变量并将该二进制文件的位置添加到其中。
【讨论】:
webdriver = 'C:/xampp/htdocs/Dairy/API/toph/python/chromedriver3.exe' 使用此行代替 webdriver = 'chromedriver3.exe'【参考方案2】:我遇到了类似的问题,看起来这个错误是 Windows 通用的,在 subprocess.py 中设置 shell=True 后我能够解决它。
【讨论】:
你到底在哪里设置了 shell=True 来完成这项工作?快把我逼疯了!!!以上是关于无法从 xampp 命令行运行 python 程序的主要内容,如果未能解决你的问题,请参考以下文章
Ubuntu - xampp - 无法将数据库导入 mysql
Python 3 不会从 Git Bash 命令行运行 [重复]
无法使用 XAMPP 从 Python cgi 脚本写入 PYTHON_EGG_CACHE