运行python项目常用工具的安装和使用(ubuntu22)

1.安装poetry --管理项目依赖

curl -sSL https://install.python-poetry.org | python3 -

检查:poetry --version

在项目下激活(比如pycharm的终端): poetry env activate

eval $(poetry env activate)

poetry install

禁用conda默认激活base环境,并改为自动激活poetry环境

conda config --set auto_activate_base false

source ~/.bashrc

nano ~/.bashrc

末尾添加:

复制代码
# 自动激活 Poetry 环境的函数
auto_poetry_shell() {
    if [ -f "pyproject.toml" ]; then
        # 检查 .venv 文件夹是否存在(假设你配置了 poetry 将虚拟环境创建在项目内)
        if [ -d ".venv" ]; then
            # 检查是否已经在虚拟环境中
            if [ -z "$VIRTUAL_ENV" ]; then
                echo "检测到 Poetry 项目,正在激活虚拟环境..."
                source ./.venv/bin/activate
            fi
        else
            # 如果没有 .venv 文件夹,可以尝试用 poetry 命令获取路径(性能稍慢)
            # 这里为了简洁,先不做复杂处理,你可以选择手动运行 poetry shell
            echo "提示:当前目录包含 pyproject.toml,但未找到 .venv 文件夹。请先运行 'poetry install' 或 'poetry config virtualenvs.in-project true' 将环境创建在项目内。"
        fi
    fi
}

# 覆盖 cd 命令
cd() {
    builtin cd "$@"
    auto_poetry_shell
}

# 当你打开一个新的终端直接进入某个目录时(比如通过 VS Code),也会触发检查
auto_poetry_shell

source ~/.bashrc

如果没有生效,需要删除之前创建过的虚拟环境,重新下载依赖即可:

在项目目录下:

poetry env list

poetry env remove 待删除环境名

一次性全部删除(谨慎使用):poetry env remove --all

poetry install

2.安装pyenv --管理python环境

sudo apt update

sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \

libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils \

tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev python3-openssl git
git clone https://gitee.com/mirrors/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc

echo 'export PATH="PYENV_ROOT/bin:PATH"' >> ~/.bashrc

echo 'eval "$(pyenv init --path)"' >> ~/.bashrc

echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pyenv --version

3.安装python --选择合适版本

pyenv install --list | grep 3.11

pyenv install 3.11.8
全局设置:pyenv global 3.11.8

仅当前项目:cd 你的项目绝对路径

pyenv local 3.11.8

python --version

4.docker

sudo apt update

sudo apt-get install apt-transport-https ca-certificates curl software-properties-common lrzsz -y

sudo curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get install docker-ce -y

docker version

配置镜像源:

cd /etc/docker

sudo touch daemon.json

sudo nano daemon.json

写入:(注意对齐,未对齐会报错)

{

"registry-mirrors": [

"https://docker.1panel.live",

"https://hub.rat.dev"

],

}

检查一下:sudo cat daemon.json

systemctl daemon-reload

systemctl restart docker

检查状态:sudo systemctl status docker

  1. 数据库

MongoDB --直接拉取官方镜像运行容器:

docker run -d \

--name mongodb-local \

-p 27017:27017 \

-e MONGO_INITDB_ROOT_USERNAME=llm_engineering \

-e MONGO_INITDB_ROOT_PASSWORD=llm_engineering \

mongo:6.0

连接,启动项目数据库

(用户名和密码与配置文件一致即可,有数据进入则会自动创建,可以不用手动创建):

docker exec -it mongodb-local mongosh -u 用户名 -p 密码 --authenticationDatabase admin

可查看数据库,有三个它自带的数据库不要误删了

如果用的pycharm,用database去连接,在配置页面让编辑器自动下载对应版本的jar包,如果下载失败,可以手动下载jar包,放到编辑器目录下就行

pycharm破解方法(ubuntu):(注意会自动把Jetbrain旗下全部的软件都扫描出,并重置激活)官网下载pycharm,启动(如果是pycharm25版本,保证本机系统是jdk21,低于这个版本启动会报错)后关闭软件

保证网络打开,执行:wget --no-check-certificate ckey.run -O ckey.run && bash ckey.run

一直回车进行下一步,最后会跳转到一个网站,直接选择自己要破解的软件,复制激活码

打开软件,输入激活码即可

用的哪个数据库创建的用户,我用的admin(不用额外配置权限)就要在url里写明:authSource=admin

Qdrant --直接拉取官方镜像运行容器:

docker run -d \

--name qdrant-local \

-p 6333:6333 \

-p 6334:6334 \

qdrant/qdrant

这个一般是上云的,官网:https://cloud.qdrant.io/

本地启动使用,可在项目里加上配置:USE_QDRANT_CLOUD=false

点击启动后给的网址 http://localhost:6333/dashboard ,里面有官方教程和控制台

看看启动了哪些容器:docker ps

关闭某个容器:docker stop 名称或者id

先就这些,后面再说。

相关推荐
白云偷星子2 小时前
RHCSA笔记4
运维
Hank Nie2 小时前
操作系统实践 0 | xv6入门与配置
linux·运维·服务器·系统架构
怀旧,2 小时前
【Linux系统编程】17. 进程间通信(下)
linux·运维·microsoft
czxyvX2 小时前
011-Linux进程控制
linux
DeeplyMind2 小时前
第27章 常见问题与解决方案
运维·docker·容器
_OP_CHEN2 小时前
【Linux系统编程】(三十六)深挖信号保存机制:未决、阻塞与信号集的底层实现全解析
linux·运维·操作系统·进程·c/c++·信号·信号保存
catoop2 小时前
Nginx 解决 upstream sent too big header 错误
运维·nginx
laplace01232 小时前
第二章 字符串和文本 下
服务器·数据库·python·mysql·agent
IvanCodes2 小时前
六、Linux核心服务与包管理
linux