Python中的requirements.txt生成

每个标准的Python项目必须要有requirements.txt,否则很容易出现移植困难。有两种方式,pip freeze和pipreqs ./。当然后者更实用,我们只是需要项目的依赖,不需要整个环境的。

当然,python项目还是需要使用环境变量的一些管理工具,不然很容易出现多个项目安装包冲突。我个人推荐conda,当然pipenv也是可以的。

一键安装scrapyd并配置好自启动

我的博客中提到过gerapy的使用,但是,安装gerapy之前是需要把scrapyd配置好的。我写了一个bash脚本一键安装scrapyd并配置好自启动服务。不足的是,需要手动更改scrapyd.conf里的bind ip address然后重新启动scrapyd。

脚本在我的github里: https://github.com/chenxuzhen/bash_install_scrapyd,也可以复制粘贴:

#/bin/bash

pip install scrapyd
cd $HOME
rmdir ~/scrapyd
mkdir ~/scrapyd
sudo rm /usr/lib/systemd/system/scrapyd.service
sudo touch /usr/lib/systemd/system/scrapyd.service
sudo chown $USER:$USER /usr/lib/systemd/system/scrapyd.service
sudo echo "
[Unit]
Description=Scrapyd service
After=network.target

[Service]
User=user
Group=group
WorkingDirectory=anydirectory
ExecStart=scrapyd

[Install]
WantedBy=multi-user.target " >> /usr/lib/systemd/system/scrapyd.service

sudo sed -i "s/User\=user/User\="$USER"/" /usr/lib/systemd/system/scrapyd.service
sudo sed -i "s/Group\=group/Group\="$USER"/" /usr/lib/systemd/system/scrapyd.service
sudo sed -i "s|=anydirectory|="$HOME"/scrapyd|" /usr/lib/systemd/system/scrapyd.service
scrapyd_bin=`echo $(whereis scrapyd) | cut -c 10-99`
echo "$scrapyd_bin"
sudo sed -i "s|=scrapyd|="$scrapyd_bin"|" /usr/lib/systemd/system/scrapyd.service

# nohup $(whereis scrapyd) >& /dev/null &
sudo systemctl enable scrapyd.service
sudo service scrapyd start
sudo service scrapyd status
echo "please change bind ip address in scrapyd.conf and reload scrapyd conf"