[英]Running script using python3 instead of default python 2.7
我已經編寫了一個 python 程序來抓取某些網站......我正在使用scrapy這是一個 python 框架。
我已經設置了以下 cron 作業來運行抓取程序:
# m h dom mon dow command
PATH=/usr/local/bin
1 6 * * * cd /home/ubuntu/scrapers/my_scraper && /home/ubuntu/.local/bin/scrapy crawl my_spider >> /tmp/scraper.log 2>&1
上述程序使用的是 python 2.7。 我希望它使用python3運行...
我已經安裝了 python3 和 pip3,並在 .bashrc 中添加了以下別名:
# .bashrc
alias python=python3
alias pip=pip3
但是當執行 cronttab 時,我收到以下錯誤:
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/home/ubuntu/scrapers/my_scraper/my_scraper/spiders/spider.py", line 3, in <module>
from python_json_config import ConfigBuilder
錯誤消息顯示我的程序正在由 python 2.7 運行
該程序過去可以與 Python 2 一起正常工作,但我添加了python_json_config
導入,我無法使用 python 安裝此 package,這就是為什么我想使用 python3 運行程序。
我不需要更新 Puthon 版本,我只需要使用 python 3 運行 scrapy 腳本。我關注了這個問題,這里接受的答案改變了.bashrc,這就是我這樣做的原因。
我使用 apt-get 安裝了 python 並使用 pip 安裝了 scrapy ...我在安裝時沒有在.bashrc 中添加任何別名。
我的 Ubuntu 服務器是 Amazon EC2,我使用 Putty 連接到它。
Ubuntu 有一個特殊的行來阻止.bashrc
在非交互式 shell 中運行。
您可以輕松更改此行為,並在運行腳本之前添加一行來運行.bashrc
:
1 6 * * * source /home/ubuntu/.bashrc && cd /home/ubuntu/scrapers/my_scraper && /home/ubuntu/.local/bin/scrapy crawl my_spider >> /tmp/scraper.log 2>&1
另一種選擇是修改 cronjob 行以直接使用 Python 3 執行腳本:
1 6 * * * cd /home/ubuntu/scrapers/my_scraper && python3 /home/ubuntu/.local/bin/scrapy crawl my_spider >> /tmp/scraper.log 2>&1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.