上传源码到服务器,然后执行poetry install安装依赖。
多进程启动脚本run.sh内容:
#!/bin/bash
#应用入口文件
APP_NAME=/www/wwwroot/python-sanic/main.py
#进程关键字
PROCESS_KEYWORD=python-sanic
#使用说明,用来提示输入参数
usage(){
echo "Usage: sh run.sh [start|stop|restart|status]"
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $PROCESS_KEYWORD|grep -v grep|awk '{print $2}'`
if [ -z "${pid}" ];then
return 1
else
return 0
fi
}
#启动方法
start(){
is_exist
if [ $? -eq 0 ];then
echo "${APP_NAME} is already running. pid=${pid}"
else
poetry run nohup python3 ${APP_NAME} >nohup.out 2>&1 &
fi
}
#停止方法
stop(){
is_exist
if [ $? -eq "0" ]; then
ps -ef|grep $PROCESS_KEYWORD|grep -v grep|awk '{print $2}'|xargs kill -9
else
echo "${APP_NAME} is not running"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo "${APP_NAME} is running. Pid is ${pid}"
else
echo "${APP_NAME} is NOT running."
fi
}
#重启方法
restart(){
stop
sleep 5
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
/***************************************************************************/
pip 临时使用:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
注意,simple 不能少, 是 https 而不是 http
设为默认
升级 pip 到最新的版本 (>=10.0.0) 后进行配置:
python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:
python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip
配置多个镜像源
如果您想配置多个镜像源平衡负载,可在已经替换 index-url 的情况下通过以下方式继续增加源站:
pip config set global.extra-index-url "<url1> <url2>..."
请自行替换引号内的内容,源地址之间需要有空格
可用的 pypi 源列表(校园网联合镜像站):校园网联合镜像站
PDM
通过如下命令设置默认镜像:
pdm config pypi.url https://pypi.tuna.tsinghua.edu.cn/simple
Poetry
通过以下命令设置默认镜像:
poetry source add --default mirrors https://pypi.tuna.tsinghua.edu.cn/simple/
通过以下命令设置次级镜像:
poetry source add --secondary mirrors https://pypi.tuna.tsinghua.edu.cn/simple/
/************************************************************************/
一、Poetry是什么?
Poetry是一个Python包管理工具,它可以帮助开发者更好地管理Python项目的依赖关系。Poetry可以自动检测和解决依赖关系,确保项目能够正确地运行。
二、安装Poetry
安装Poetry非常简单,只需要在终端中运行以下命令:
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
安装完成后,可以通过运行以下命令来验证是否安装成功:
poetry --version
如果输出了Poetry的版本号,则说明安装成功。
三、创建Python项目
在使用Poetry管理依赖之前,需要先创建一个Python项目。可以通过运行以下命令来创建一个新的Python项目:
poetry new my_project
这会在当前目录中创建一个名为my_project的新项目。接下来,可以使用任何文本编辑器来编辑项目中的文件。
四、添加依赖
添加依赖非常简单,只需要在终端中运行以下命令:
poetry add package_name
其中package_name是要安装的依赖包的名称。Poetry将自动下载并安装依赖包及其依赖项。可以使用以下命令来查看项目的依赖关系:
poetry show
五、安装依赖
在添加依赖之后,需要运行以下命令来安装依赖:
poetry install
这会安装所有依赖项,并将它们安装到项目中的虚拟环境中。在安装依赖之后,可以运行以下命令来启动项目:
poetry run python app.py
六、更新依赖
当依赖包的新版本发布时,可以使用以下命令来更新依赖关系:
poetry update package_name
这会将指定的依赖包更新到最新版本。如果要更新所有依赖项,则可以运行以下命令:
poetry update
/************************************************************************/
poetry 语法格式
poetry [-h] [-q] [-v [<...>]] [-V] [--ansi] [--no-ansi] [-n] <command> [<arg1>] ... [<argN>]
全局 options
--verbose (-v|vv|vvv):增加消息的详细程度:“-v”表示正常输出,“-vv”表示更详细的输出,“-vvv”表示调试
--help (-h):帮助文档
--quiet (-q):静默模式,不输出任何内容
--ansi:强制 ANSI 输出
--no-ansi:禁用 ANSI 输出
--version (-V):版本号
new
通过创建适合大多数项目的目录结构来启动新的Python项目
poetry new my-package
my-package 是路径
默认目录结构
my-package
├── pyproject.toml
├── README.rst
├── my_package
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_package.py
自定义项目名称
poetry new my-folder --name my-package
使用 src 目录
poetry new --src my-package
目录结构
my-package
├── pyproject.toml
├── README.rst
├── src
│ └── my_package
│ └── __init__.py
└── tests
├── __init__.py
└── test_my_package.py
init
如果想在已存在的 Python 项目使用 poetry,可以用 init 命令,poetry 会以交互方式创建 pyproject.toml 文件
poetry init
我是一只回车没有自己输入东西的
options
--name:包的名称
--description:包的描述
--author:包的作者
--python:兼容的 Python 版本
--dependency:需要具有版本约束的包,格式 foo:1.0.0
--dev-dependency:开发需求
生成 pyproject 已有的字段 和 options 是可以对齐的
install
从当前项目读取 pyproject.toml 文件,解析依赖项 [tool.poetry.dependencies] 并安装它们
poetry install
如果当前目录中有 poetry.lock 文件,它将使用其中的确切版本,而不是解析它们,这确保使用库的每个人都将获得相同版本的依赖项
如果没有 poetry.lock 文件,poetry 将在依赖项解析后创建一个
重点
默认会安装 [tool.poetry.dependencies] 和 [tool.poetry.dev-dependencies] 下所有强制安装的(不带 optional)依赖项
--no-dev
不安装开发依赖项 [tool.poetry.dev-dependencies]
poetry install --no-dev
--remove-untracked
移除 poetry.lock 文件中不再存在的旧依赖项
poetry install --remove-untracked
-E|--extras
指定安装的包
--no-root
不要安装根目录包
update
获取所有依赖项的最新版本并更新 poetry.lock 文件
poetry update
指定依赖项进行更新
poetry update requests toml
options
--dry-run :输出操作,但不执行操作
--no-dev : 不安装开发依赖项
--lock:不执行安装,仅更新 poetry.lock 文件
add
将所需要的包添加到 pyproject.toml 的 [tool.poetry.dependencies] 下面,并安装他们
未指定版本的话,则 poetry 会自动选择合适的版本
poetry add requests pendulum
注意
默认不会将包添加到 [tool.poetry.dev-dependencies] 下,若需要得用 --dev 参数
指定版本
poetry add pendulum@^2.0.5
poetry add "pendulum>=2.0.5"
获取最新的版本
poetry add pendulum@latest
添加 github 依赖项
poetry add git+https://github.com/sdispater/pendulum.git
添加 github 依赖项,指定分支
poetry add git+https://github.com/sdispater/pendulum.git#develop
poetry add git+https://github.com/sdispater/pendulum.git#2.0.5
通过本地目录、文件进行安装
poetry add ./my-package/
poetry add ../my-package/dist/my-package-0.1.0.tar.gz
poetry add ../my-package/dist/my_package-0.1.0.whl
以可编辑模式安装依赖项
在 pyproject.toml 文件指定,意味着本地目录中的更改会直接反映在环境中
[tool.poetry.dependencies]
my-package = {path = "../my/path", develop = true}
options
--dev (-D):将包添加为开发依赖项
--path:指定依赖项的路径
--optional:作为可选依赖项添加
--dry-run:输出操作,不执行任何操作
--lock:不执行安装,仅更新 poetry.lock 文件
remove
从已安装包列表删除指定包
poetry remove pendulum
options
--dev(-D):从开发依赖项中删除包
--dry-run:输出操作,不执行任何操作
show
根据 poetry.lock 列出所有可用的软件包,并不是根据 pyproject.toml 文件的 [tool.poetry.dependencies]
poetry show
查看某个包的详细信息
poetry show fastapi
options
--no-dev:不要列出开发依赖项
--tree:树的形式列出依赖项
--latest (-l):显示最新版本
--outdated (-o):显示最新版本,但仅适用于过时的软件包
run
在项目的 virtualenv 中执行指定的命令
poetry run python -V
还可以执行 pyproject.toml 中定义的脚本
[tool.poetry.scripts]
my_script = "my_module:main"
执行
poetry run my_script
shell
显式激活当前虚拟环境,会自动调用虚拟环境下的激活命令
如果不存在虚拟环境,会自动创建一个
check
验证 pyproject.toml 文件的结构,并在出现任何错误时返回详细报告
poetry check
search
在远程库上搜索包
poetry search requests
lock
将所有依赖项锁定为最新的可用兼容版本
poetry lock
version
显示项目的当前版本
是 pyproject.toml 文件的 version 哦
export
将锁文件导出为其他格式
poetry export -f requirements.txt --output requirements.txt
options
--format (-f):要导出的格式(默认值:requirements.txt)目前,仅支持requirements.txt
--output (-o):输出文件的名称,如果省略,则打印到标准输出
--dev(-D):从开发依赖项中删除包
--extras (-E):要包含的额外依赖项集
--without-hashes:从导出的文件中排除散列
--with-credentials:包括用于额外索引的凭据
env
管理虚拟环境,具体教程看:https://www.cnblogs.com/poloyy/p/15270670.html
cache
与 poetry 缓存交互
cache list
列出 poetry 的可用缓存
build
生成源文件
publish
将使用 build 命令生成的包发布到远程存储库
options
--repository (-r):要将包注册到的存储库(默认值:pypi)应与config命令设置的存储库名称匹配
--username (-u):访问存储库的用户名
--password (-p):访问存储库的密码
--dry-run:执行除上传包以外的所有操作