当前位置: 首页 > news >正文

tag 网站托管公司uc浏览器直接进入

tag 网站托管公司,uc浏览器直接进入,关于搜索引擎的搜索技巧,东莞网站建设(推荐乐云践新)文章目录 参考文章目录结构步骤安装venv查看python版本创建虚拟环境激活虚拟环境运行我们程序看缺少哪些依赖库#xff0c;依次安装它们接下来我们配置python程序启动脚本#xff0c;脚本中启动python程序前需先激活虚拟环境配置.service文件然后执行部署脚本#xff0c;成功… 文章目录 参考文章目录结构步骤安装venv查看python版本创建虚拟环境激活虚拟环境运行我们程序看缺少哪些依赖库依次安装它们接下来我们配置python程序启动脚本脚本中启动python程序前需先激活虚拟环境配置.service文件然后执行部署脚本成功了但是又莫名其妙搞出来一个问题后面一直不能复现后来又好了一直无法复现考虑问题复现时使用备用方案反正现在是正常的 20230811 虚拟环境中搞jtopjetson-stats还是有亿点问题 参考文章 Python虚拟环境使用教程以虚拟环境管理工具venv为例virtualenv、venv、pyenv、virtualenvwrapper、conda不同管理工具对比 目录结构 步骤 安装venv 它会基于当前版本的python3来安装python3-venv apt update apt install python3.8-venv查看python版本 执行python 创建虚拟环境 进入项目目录执行 python3 -m venv .venv-python3.8我把每个项目虚拟环境固定取名为.venv-python3.8后续方便脚本操作 20230813改了不这么搞了容易混淆每个虚拟环境都应该有自己特定的名字 python3 -m venv .venv-python3.8-ky_ai_ip_change可以看到生成了目录.venv-python3.8 我这刚生成的虚拟环境占空间也不大才7兆多 激活虚拟环境 source .venv-python3.8/bin/activate运行我们程序看缺少哪些依赖库依次安装它们 执行 python3 ip_change发现少了ping3装上 pip install ping3反复执行 python3 ip_change缺少啥库就装啥库 下载太慢我换成清华源怎么还给我卡住了 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent20230813如果有requirements.txt文件可以直接 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt可以禁用缓存因为缓存可能会导致大问题比如缓存里有但是是用之前正确的方式下载的当前下载方式不正确但用缓存也成功了就会导致下载者误判 pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt第二天看好了 继续 可以了跑起来了接口也能调通 接下来我们配置python程序启动脚本脚本中启动python程序前需先激活虚拟环境 注意journalctl -u servicename没有及时打印python日志的原因是因为在systemd unit文件中执行shell脚本脚本中再执行python命令命令没加-u参数导致的。估计是systemd自动把shell脚本输出重定向到journalctl日志跟我们之前遇到的问题一样 ky_ai_ip_change.sh #!/bin/bash# 打印所有包括注释 # set -v # 打印执行命令 # set -x # 命令出错退出 set -e # 使用未初始化变量退出 set -uUSERroot# --------------------------------------------------------------------------# 检查是否是root WHO$(whoami | grep ${USER}$) if [ -z ${WHO} ]; thenechoecho Please change to \${USER}\ user mode first!echoexit 1 fi# --------------------------------------------------------------------------# 获取脚本所在路径 SCRIPT_LOCATION$(cd $(dirname $0) || {echo cd Failureexit 1}pwd ) echo SCRIPT_LOCATION $SCRIPT_LOCATION# --------------------------------------------------------------------------VENV_NAME.venv-python3.8 PYTHON_ENTRY_FILEip_change# --------------------------------------------------------------------------# 激活虚拟环境 # 加指令注释消除shellcheck警告source后有变量就会警告 # shellcheck source/ky/tml/ky_ai_ip_change/.venv-python3.8/bin/activate source $SCRIPT_LOCATION/$VENV_NAME/bin/activate if [ $? -ne 0 ]; thenecho Execute [source $SCRIPT_LOCATION/$VENV_NAME/bin/activate] failedexit 1 fi# 运行项目 # python -u $SCRIPT_LOCATION/$PYTHON_ENTRY_FILE # if [ $? -ne 0 ]; then # echo Execute [python $SCRIPT_LOCATION/$PYTHON_ENTRY_FILE] failed # exit 1 # fi# 改一改避免命令报错直接退出脚本没有机会退出虚拟环境 if python -u $SCRIPT_LOCATION/$PYTHON_ENTRY_FILE; thenecho 命令 [python -u $SCRIPT_LOCATION/$PYTHON_ENTRY_FILE] 执行成功 elseecho 命令 [python -u $SCRIPT_LOCATION/$PYTHON_ENTRY_FILE] 执行失败 fideactivate if [ $? -ne 0 ]; thenecho Execute [deactivate] failed退出虚拟环境失败exit 1 fi echo Execute [deactivate] successfully退出虚拟环境成功 配置.service文件 ky_ai_ip_change.service [Unit] Descriptionky_ai_ip_change Afternetwork.target[Service] ExecStart/ky/tml/ky_ai_ip_change/ky_ai_ip_change.sh WorkingDirectory/ky/tml/ky_ai_ip_change Restartalways RestartSec3[Install] WantedBydefault.target然后执行部署脚本成功了 install.sh #!/bin/bash# 打印所有包括注释 # set -v # 打印执行命令 # set -x # 命令出错退出 set -e # 使用未初始化变量退出 set -uUSERroot # USER_HOME/root# --------------------------------------------------------------------------# 检查是否是root WHO$(whoami | grep ${USER}$) if [ -z ${WHO} ]; thenechoecho Please change to \${USER}\ user mode first!echoexit 1 fi# --------------------------------------------------------------------------# 获取脚本所在路径 SCRIPT_LOCATION$(cd $(dirname $0) || {echo cd Failureexit 1}pwd ) # echo SCRIPT_LOCATION $SCRIPT_LOCATION chmod 777 ${SCRIPT_LOCATION} -R# --------------------------------------------------------------------------# 不同服务只用改 SERVICE_NAME 变量即可 SERVICE_NAMEky_ai_ip_change SERVICE_FILE_NAME$SERVICE_NAME.serviceSERVICE_SOURCE_FILE_PATH$SCRIPT_LOCATION/$SERVICE_FILE_NAME# 不能在 /etc/systemd/system 中创建子目录吗貌似是的测试很多次都不行 # SERVICE_TARGET_DIR_NAMEky_ai_service # SERVICE_TARGET_DIR_PATH/etc/systemd/system/$SERVICE_TARGET_DIR_NAME SERVICE_TARGET_DIR_PATH/etc/systemd/system# --------------------------------------------------------------------------# 创建目标目录 # if [ ! -d $SERVICE_TARGET_DIR_PATH ]; then # mkdir -p $SERVICE_TARGET_DIR_PATH # echo 创建目录[$SERVICE_TARGET_DIR_PATH] # else # echo 目录已存在不重新创建[$SERVICE_TARGET_DIR_PATH] # fi # chmod 777 $SERVICE_TARGET_DIR_PATH -R# --------------------------------------------------------------------------# 判断服务是否存在 if systemctl list-unit-files --typeservice | grep -q $SERVICE_NAME; thenecho $SERVICE_NAME.service exists# 打印服务状态# systemctl status $SERVICE_NAMEecho# 这句明明是打印居然会触发 set -e 报错退出加上 || true# systemctl status $SERVICE_NAME || true# 貌似信息比较长时会有分页等待用户输入阻塞程序加上 --no-pager 选项systemctl status $SERVICE_NAME --no-pager || trueecho# 询问用户是否删除read -p Do you want to delete $SERVICE_NAME.service? (y/n): choiceif [[ $choice y || $choice Y ]]; then# 删除服务systemctl stop $SERVICE_NAMEecho 已 stop [$SERVICE_NAME] 服务 systemctl disable $SERVICE_NAMEecho 已 disable [$SERVICE_NAME] 服务# rm /etc/systemd/system/$SERVICE_NAME.service # 不用删会自动删的systemctl daemon-reloadecho 已 daemon-reloadecho $SERVICE_NAME.service has been deletedelseecho Exiting scriptexit 0fi elseecho $SERVICE_NAME.service not exists fi echo# --------------------------------------------------------------------------# 这句明明是打印居然会触发 set -e 报错退出 # systemctl list-unit-files | grep $SERVICE_NAME # systemctl list-unit-files | grep $SERVICE_NAME || true# --------------------------------------------------------------------------# Function: create_symlink # Description: Check if a symlink exists and is valid. If it is valid, prompt the user to delete and relink it. # If it is invalid, display an error message. If it does not exist, create a new symlink. # Parameters: # $1 - The target path of the symlink # $2 - The path of the symlink # Returns: # Nonefunction create_symlink() {SRC$1LINK$2if [ -e $LINK ]; thenif [ -L $LINK ]; thenecho The symlink $LINK is valid.read -p Do you want to delete and relink it? (y/n) choicecase $choice iny | Y)rm $LINKecho The symlink $LINK has been deleted.;;*)return 0;;esacelseecho The symlink $LINK is invalid.fifiecho Force create soft link: [$LINK - $SRC]ln -sf $SRC $LINKif [ $? -ne 0 ]; thenecho Force create soft link: [$LINK - $SRC] failedexit 1fils -l --colorauto $LINK }# --------------------------------------------------------------------------# 判断软链接/usr/local/bin/node是否存在如果存在判断软链接是否有效如果有效询问用户是否删除如果用户选择是则删除此软链接并重新创建 SERVICE_TARGET_FILE_PATH$SERVICE_TARGET_DIR_PATH/$SERVICE_FILE_NAME # ls -l --colorauto $NODE_LINK create_symlink $SERVICE_SOURCE_FILE_PATH $SERVICE_TARGET_FILE_PATH echo# --------------------------------------------------------------------------# 通知systemd重新加载配置文件 systemctl daemon-reload if [ $? -ne 0 ]; thenecho Systemctl daemon-reload failedexit 1 fi echo Daemon-reload successfully# 启用服务 systemctl enable $SERVICE_NAME if [ $? -ne 0 ]; thenecho Enable service [$SERVICE_NAME] failedexit 1 fi echo Enable service [$SERVICE_NAME] successfully# 启动服务 systemctl start $SERVICE_NAME if [ $? -ne 0 ]; thenecho Start service [$SERVICE_NAME] failedexit 1 fi echo Start service [$SERVICE_NAME] successfully# --------------------------------------------------------------------------echo # systemctl status $SERVICE_NAME || true # 貌似信息比较长时会有分页等待用户输入阻塞程序加上 --no-pager 选项 systemctl status $SERVICE_NAME --no-pager || true# --------------------------------------------------------------------------echo echo Service [$SERVICE_FILE_NAME] install successfully echo 但是又莫名其妙搞出来一个问题后面一直不能复现后来又好了一直无法复现考虑问题复现时使用备用方案 参考文章Current command vanished from the unit file, execution of the command list won‘t be resumed. 后面如果又碰到可以考虑直接systemd unit文件中直接执行python指令而不是脚本同时定义ExecStartPre和ExecStopPost执行指令前的激活虚拟环境和退出虚拟环境的操作 如果使用systemd来执行Python服务可以在service配置文件中设置ExecStartPre和ExecStopPost来在执行前进入虚拟环境执行后退出虚拟环境。 以下是一个示例的service配置文件展示了如何在执行前进入虚拟环境执行后退出虚拟环境 [Unit] DescriptionMy Python Service[Service] ExecStartPre/bin/bash -c source /path/to/venv/bin/activate ExecStart/path/to/python /path/to/script.py ExecStopPost/bin/bash -c deactivate[Install] WantedBymulti-user.target在这个示例中ExecStartPre指定了在执行前要执行的命令即进入虚拟环境的命令source /path/to/venv/bin/activate。ExecStart指定了要执行的Python脚本的路径。ExecStopPost指定了在执行后要执行的命令即退出虚拟环境的命令deactivate。 请将/path/to/venv替换为你的虚拟环境的路径将/path/to/python替换为你的Python解释器的路径将/path/to/script.py替换为你的Python脚本的路径。 通过这样的配置当你启动或停止该service时会自动进入和退出虚拟环境。 反正现在是正常的 20230811 虚拟环境中搞jtopjetson-stats还是有亿点问题 pip3 install -U jetson-stats
http://www.hkea.cn/news/14304719/

相关文章:

  • 建设网站平台的建议网站关键词排名优化电话
  • 中文网站什么意思如何建设一个不备案的网站
  • 静态网站怎么更新贵池网站建设
  • 通付盾 公司网站建设seo代码优化工具
  • 初识网站开发流程图宣传片制作软件app
  • php怎么创建网站清远网站关键词优化
  • 修车店怎么做网站seo在线推广
  • 高大上网站欣赏中国计算机网络公司排名
  • wordpress外链404东莞网络推广优化
  • 建网站科技公司最好的flash网站
  • 网站建设合同 程序深圳建设网站制作
  • 网站宣传与推广的方法网站建设服务费合同模板
  • 安陆市网站wordpress主题免刷新
  • 县门户网站建设方案门户网站举例
  • 成都网站建设方案服务成都市微信网站建设
  • seo网站提交网页传奇手游排行榜前十名
  • 做仓单的网站网站文本编辑器
  • 高端设计网站建设torrent种子搜索引擎
  • 新乡网站建设哪家正规怎么建设网站商城
  • 做网站租用那个服务器好wordpress多级折叠
  • 有什么推广网站wordpress 添加栏目
  • 找做金融的网站有哪些方面优秀网名
  • 网站开发选题申请理由国外中文网站排行
  • 天河做网站注册网站的免费网址com
  • 网站建设的提升网站建设的规划方案
  • 平台网站建设协议网络营销运营外包
  • 网站建设行业2017长春网站制作
  • 网站运营代理网站建设方案浩森宇特
  • 网上书城网站开发的结论和不足深圳市住房和建设局投诉电话
  • 天津网站建设网页设计公司天津企业建站系统