PythonAnywhere调度脚本遇chromedriver.exe权限错误求解决方案及替代平台
问题解决与替代平台推荐
一、Selenium权限错误的解决方法
1. 核心问题分析
你遇到的PermissionError本质有两个原因:
- PythonAnywhere是Linux服务器环境,你使用了Windows平台的
chromedriver.exe(带.exe后缀的是Windows可执行文件,Linux下无法直接运行)。 - 即使是正确的Linux版chromedriver,也缺少可执行权限。
2. 具体修复步骤
(1)替换为Linux版chromedriver
- 先查看PythonAnywhere上安装的Chrome版本,在控制台执行命令:
google-chrome --version - 下载对应版本的Linux版chromedriver(不要下载Windows版),上传到
/home/saifbyte/seetickets/目录,删除原有的chromedriver.exe。
(2)添加可执行权限
在控制台执行命令,给chromedriver赋予可执行权限:
chmod +x /home/saifbyte/seetickets/chromedriver
(3)修改代码中的路径与配置
将类初始化的driver_path参数修改为Linux版路径(去掉.exe后缀),同时添加Linux环境必需的headless模式参数:
class SeeTicket(webdriver.Chrome): def __init__(self ,driver_path='/home/saifbyte/seetickets/chromedriver', teardown = False): options = webdriver.ChromeOptions() # Linux无图形界面,必须开启headless模式 options.add_argument('--headless=new') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_experimental_option("detach", True) options.add_experimental_option('excludeSwitches', ['enable-logging']) self.driver_path = driver_path self.teardown = teardown super(SeeTicket, self).__init__(options=options, executable_path=self.driver_path) # 服务器上maximize_window可能无效,可替换为固定窗口大小 # self.set_window_size(1920, 1080)
(4)额外注意
PythonAnywhere入门账号运行Selenium必须开启headless模式,否则会因无图形界面直接报错,上述代码已补充必要参数。
二、PythonAnywhere替代平台推荐
以下是适合运行Python脚本(含定时任务、爬虫)的优质平台:
- Heroku:免费层支持小型项目,可通过Heroku Scheduler配置定时任务,适合快速部署简单脚本。
- Render:提供免费额度,支持Web服务、定时任务和后台进程,配置界面友好,无需复杂服务器管理。
- AWS Lambda:无服务器架构,按调用次数计费,免费额度足够运行小型定时脚本,适合事件驱动或周期性任务。
- Google Cloud Functions:与AWS Lambda类似,谷歌云生态下的无服务器服务,免费层可满足基础需求。
- Replit:在线IDE,支持直接运行脚本和设置定时任务,免费版适合快速测试和运行小型项目。
内容的提问来源于stack exchange,提问作者glitch_123
相关产品推荐
相关产品推荐

