Python 開發環境管理和常用命令

包管理器選擇

從輕到重: venv → virtualenv → conda

  • venv: Python 3.3+ 內置,輕量級虛擬環境
  • virtualenv: 第三方包,支持更多Python版本
  • conda: 科學計算友好,包含包管理和環境管理

Python 版本支持

查看各版本支持狀態:Status of Python versions

推薦: 如果需要進行科學計算、數據分析,使用 numpy、scipy 等有 C 擴展的第三方模塊,特別是在 Windows 系統上,建議直接使用 Anaconda,可以減少很多麻煩。

Conda 環境管理

基本概念

  • Anaconda: 包含了 Python、常見的數據擴展包、conda 工具
  • 安裝路徑: /anaconda3/bin
  • 文檔: https://conda.io/docs

環境管理命令

# 創建環境
conda create -n py39 python=3.9 anaconda    # 包含科學計算庫
conda create -n py39 python=3.9             # 基礎環境# 激活和退出環境
conda activate py39
conda deactivate# 環境管理
conda env list                    # 列出所有環境
conda info --envs                 # 列出所有環境(同上)
conda env remove -n py39          # 刪除環境# 包管理
conda install tensorflow          # 安裝包
conda install -c conda-forge package_name  # 從指定頻道安裝
conda list                        # 列出當前環境所有包
conda update package_name         # 更新包
conda remove package_name         # 刪除包# 查看信息
conda info                        # 查看conda信息
python -c 'import tensorflow;print(tensorflow.__version__)'  # 測試安裝

pip 包管理

鏡像源配置

# 永久配置(推薦)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple# 臨時使用鏡像源安裝
pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install package_name -i http://pypi.douban.com/simple --trusted-host pypi.douban.com# 查看當前配置
pip config list# 常用鏡像源
# 清華: https://pypi.tuna.tsinghua.edu.cn/simple
# 豆瓣: http://pypi.douban.com/simple
# 中科大: https://pypi.mirrors.ustc.edu.cn/simple/

基本安裝命令

# 安裝包
pip install package_name           # 安裝最新版本
pip install package_name==1.0.0    # 安裝指定版本
pip install package_name>=1.0.0    # 安裝指定版本以上# 安裝選項
pip install --upgrade package_name # 升級包
pip install --ignore-installed package_name  # 忽略已安裝包重新安裝
pip install --user package_name    # 安裝到用戶目錄# 卸載包
pip uninstall package_name# 查看信息
pip list                           # 列出所有包
pip show package_name              # 顯示包詳細信息
pip config list                   # 查看pip配置(同上鏡像源配置中的命令)

環境復制和管理

# 生成當前環境包列表
pip freeze > requirements.txt# 從requirements文件安裝
pip install -r requirements.txt# 示例輸出
# docutils==0.11
# Jinja2==2.7.2
# MarkupSafe==0.19
# Pygments==1.6
# Sphinx==1.2.2

venv 虛擬環境

創建和使用

# 創建虛擬環境
python3 -m venv myvenv# 激活環境
source myvenv/bin/activate         # Linux/Mac
myvenv\Scripts\activate            # Windows# 退出環境
deactivate# 在激活的環境中操作
pip install --upgrade pip          # 升級pip
pip install requests               # 安裝包# 刪除環境
rm -rf myvenv

virtualenv 虛擬環境

基本使用

# 創建虛擬環境
virtualenv ENV# 激活環境
source ENV/bin/activate            # Linux/Mac
ENV\Scripts\activate               # Windows# 退出環境
deactivate# 刪除環境
rm -rf ENV

Python 版本管理

查看版本

python --version                   # 查看Python版本
python3 --version                  # 查看Python3版本
pip --version                      # 查看pip版本# 查看Python路徑
which python                       # Linux/Mac
where python                       # Windows

切換版本(使用pyenv推薦)

# 安裝pyenv后
pyenv install 3.9.0               # 安裝Python版本
pyenv global 3.9.0                # 設置全局版本
pyenv local 3.9.0                 # 設置項目版本
pyenv versions                     # 列出所有版本

快速開發服務

HTTP 服務器

# Python 2
python -m SimpleHTTPServer 7878# Python 3
python -m http.server 7878

常用開發包安裝示例

數據庫相關

pip install mysql-connector-python # MySQL連接器
pip install psycopg2               # PostgreSQL連接器

科學計算

# 通過conda安裝(推薦)
conda install numpy pandas matplotlib scipy jupyter# 通過pip安裝
pip install numpy pandas matplotlib scipy jupyter

環境遷移最佳實踐

方案一:使用 requirements.txt

# 在原環境中
pip freeze > requirements.txt# 在新環境中
pip install -r requirements.txt

方案二:使用 conda 環境導出

# 導出環境
conda env export > environment.yml# 創建相同環境
conda env create -f environment.yml

故障排除

常見問題

  1. Windows 上 C 擴展包安裝失敗: 使用 Anaconda 或預編譯的 wheel 包
  2. 網絡問題: 使用國內鏡像源
  3. 權限問題: 使用虛擬環境避免系統級安裝
  4. 版本沖突: 使用虛擬環境隔離不同項目的依賴

附:

常用命令工具集

搜索和文本處理工具

ripgrep (rg)

rg "搜索內容" /Users/renzhibin/mycode/keploy

ag - 快速搜索工具

ag:比grep、ack更快的遞歸搜索文件內容

cloc - 代碼統計

cloc /Users/renzhibin/mycode/keploy  # 統計代碼行數

fzf - 模糊搜索

fzf:命令行下模糊搜索工具,能夠交互式智能搜索并選取文件或者內容,配合終端ctrl-r歷史命令搜索簡直完美

tldr - 命令幫助工具

tldr 命令名  # 查看命令的簡化幫助文檔
# 示例:tldr tar, tldr grep, tldr find

sed - 文本替換

# 循環替換子目錄
find . -type f|xargs sed -i 's/測試/哦也/'
grep -l -i -R '* 100' ./*|xargs sed -i '' 's/* 100//g'
SED正則表達式規則

位置符號:

  • ^: 表示句首,如 ^abc 表示以 abc 開始的句子
  • $: 表示句尾,如 abc$ 表示以 abc 結尾的句子
  • <: 表示詞首,如 <abc 表示以 abc 開始的詞
  • >: 表示詞尾,如 abc> 表示以 abc 結尾的詞

數量控制符:

  • *: 前一個字符出現0或多次
  • ?: 前一個字符出現0或1次
  • +: 前一個字符出現1或多次
  • {n}: 前一個字符出現n次
  • {n,}: 前一個字符出現至少n次
  • {n,m}: 前一個字符出現n到m次

字符集:

  • .: 任意字符
  • [:alnum:]: 字母數字 [a-z A-Z 0-9]
  • [:alpha:]: 字母 [a-z A-Z]
  • [:digit:]: 數字 [0-9]
  • [:space:]: 空格

文件壓縮和解壓

tar 壓縮解壓

# 壓縮
tar -czvf 文件名.tar.gz 文件或目錄路徑
# 示例:tar -czvf logs.tar.gz /var/log# 解壓
tar -xzvf 文件名.tar.gz 文件或目錄路徑

系統進程和端口管理

端口查看

lsof -i :端口號

進程目錄查看

pwdx pid  # 找到進程的文件路徑

進程信息查看

ps -eo pid,cmd,etime,lstart
ps -eo pid,rss | awk '{ sum += $2 } END { print sum/1024.0/1024.0 }'  # 進程內存統計

端口測試工具

telnet
# 成功示例
telnet 127.0.0.1 80
# 輸出:Connected to 127.0.0.1# 失敗示例  
telnet 127.0.0.1 8080
# 輸出:Connection refused
nc (netcat)
# 成功
nc -zv 127.0.0.1 80
# 輸出:Connection to 127.0.0.1 80 port [tcp/http] succeeded!# 失敗
nc -zv 127.0.0.1 8080  
# 輸出:Connection refused
SSH端口測試
ssh -v ip -p port
curl端口測試
curl -v 127.0.0.1:80
wget端口測試
wget 127.0.0.1:80
lsof本地端口查看
lsof -i:port
netstat網絡連接查看
netstat -lntp
# -l 列出所有端口
# -n 以數字顯示地址和端口  
# -t 列出tcp協議連接,-u列出udp連接,-a列出所有
# -p 顯示占用該端口的進程

系統信息查看

內存查看

# 整體內存
free -h# 進程占用常駐內存
ps -eo pid,rss | awk '{ sum += $2 } END { print sum/1024.0/1024.0 }'

Linux發行版查看

lsb_release -a
cat /etc/centos-release

軟連接查看

readlink -f /usr/bin/java
# 硬鏈:stat 或 ls -i 通過inode來確認是否為同一文件

會話管理工具

screen

sudo apt install screen   # Ubuntu/Debian安裝
screen                    # 創建新會話
screen -S <session_name>  # 創建命名會話
screen -ls               # 列出所有會話
screen -r <session_name> # 恢復會話
screen -d <session_name> # 強制分離會話
screen -X -S <PID> quit  # 終止會話# 快捷鍵:Ctrl+A 再按 D 脫離會話

tmux

tmux new -s my_session           # 創建會話
tmux attach -t model_training    # 連接會話
tmux kill-session -t my_session  # 終止會話# 快捷鍵:Ctrl+B, D 分離會話

數據庫

MySQL

brew services start mysql
mysql -u root# 默認密碼
Root@123456

包管理工具

Homebrew (macOS)

# 安裝前路徑:/usr/local
# 重新安裝后路徑:/opt/homebrewbrew services start mysql
brew edit openresty

參考鏈接:Homebrew相關文章

Chocolatey (Windows)

$env:PATH = $env:PATH + ';C:\ProgramData\chocolatey\bin'
choco install make

開發工具

Java相關

SonarQube
mvn sonar:sonar \-Dsonar.host.url=http://localhost:9000 \-Dsonar.login=sqa_7a58a86056fdcf4be71ce0dde36f4dc12b533fc2 \-Dsonar.java.binaries=target/sonar

IntelliJ IDEA

代碼優化
  • 全選代碼:Ctrl + A
  • 格式化代碼:Ctrl + Alt + L
代碼跳轉
  • 返回前一位置:Alt + 左箭頭 (Windows/Linux) 或 Command + [ (Mac)
  • 或點擊導航欄的 “Navigate Back” 按鈕
注釋
  • 切換到塊注釋模式后,使用 Ctrl + /Cmd + / 添加多行注釋

Sublime Text

多行編輯
  1. 鼠標選中多行,按下 Ctrl + Shift + L (Command + Shift + L) 同時編輯多行
  2. 選中文本后反復按 Ctrl + D (Command + D) 繼續選中下一個相同文本
列編輯模式
  1. 按住 Alt (Windows/Linux) 或 Option (Mac),拖動鼠標選中列區域
  2. 在列選擇狀態下輸入內容,可在多行統一添加

文件操作工具

macOS剪貼板

# 復制文件內容到剪貼板
cat your_file.txt | pbcopy# 從剪貼板粘貼內容
pbpaste

文件傳輸

scp /local/file user@remote_host:/remote/path/

macOS快捷鍵

基本操作

  • 退出應用:Command + Q
  • 關閉標簽頁:Command + W
  • 刷新:Command + R
  • 新建標簽頁:Command + T
  • 截屏:Shift + Command + 5

系統操作

  • 全屏切換:Ctrl + Command + F
  • 顯示桌面:Command + F3
  • 鎖屏:Shift + Control + 電源鍵
  • 隱藏程序塢:Command + Option + D

Terminal/iTerm快捷鍵

  • 行首:Ctrl + A
  • 行尾:Ctrl + E
  • 清屏:Ctrl + L
  • 搜索歷史命令:Ctrl + R
  • 清除當前行:Ctrl + U
  • 清除到行尾:Ctrl + K
  • 按單詞移動:Option + 方向鍵
  • 翻頁:Ctrl + F / Ctrl + B

應用權限修復

# 修復"應用已損壞"問題
sudo xattr -r -d com.apple.quarantine /Applications/xxxx.app

系統路徑

CentOS

/media/psf/Downloads  # 共享目錄路徑

標準輸入輸出

  • 0: 標準輸入 (stdin)
  • 1: 標準輸出 (stdout)
  • 2: 標準錯誤 (stderr)

內網穿透

推薦工具:4.2K Star!一個開源內網穿透工具!優秀!

Git相關

(此處可以添加具體的Git命令)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/86056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/86056.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/86056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

macOS - 根據序列號查看機型、保障信息

文章目錄 最近在看 MacBook 二手機&#xff0c;有個咸魚賣家放個截圖 說不清參數&#xff0c;于是想根據 序列號 查看機型。蘋果提供了這樣的網頁&#xff1a; https://checkcoverage.apple.com/ &#xff08;無需登錄&#xff09; 結果 2025-06-20&#xff08;五&#xff09;…

數字化項目調研過程中需要的文章

Hello&#xff0c;大家好 &#xff0c;我是東哥說-MES 最近寫了不少的文章&#xff0c;為了方便閱讀&#xff0c;特意重新整理了數字化相關的文章鏈接&#xff0c;也便于大家閱讀 數字工廠項目啟動與業務需求調研執行指南-CSDN博客文章瀏覽閱讀725次&#xff0c;點贊28次&…

LangChain4j之會話功能AiServices工具類的使用(系列二)

概述 LangChain4j 的會話功能 AiServices 工具類&#xff0c;可助力輕松實現智能對話。它能記錄對話上下文&#xff0c;讓 AI 回答連貫且貼合情境。使用起來&#xff0c;先引入類&#xff0c;配置好相關參數&#xff0c;如模型地址、密鑰等。接著&#xff0c;調用相應方法傳入…

Qt 中使用 gtest 做單元測試

作者&#xff1a;billy 版權聲明&#xff1a;著作權歸作者所有&#xff0c;商業轉載請聯系作者獲得授權&#xff0c;非商業轉載請注明出處 gtest 簡介 GoogleTest&#xff08;也稱為gtest&#xff09;是由 Google 開發的一個 C 單元測試框架&#xff0c;用于編寫、組織和運行…

WPF TreeView 數據綁定完全指南:MVVM 模式實現

WPF TreeView 數據綁定完全指南&#xff1a;MVVM 模式實現 一、TreeView 綁定的核心概念1.1 MVVM 模式下的 TreeView 綁定原理1.2 綁定關系示意圖 二、完整實現步驟2.1 創建節點模型類2.2 創建 ViewModel2.3 XAML 綁定配置2.4 設置 Window 的 DataContext 三、關鍵特性詳解3.1 …

坤馳科技QTS4200戰鷹(Battle Eagle)系列實時頻譜分析記錄回放系統

QTS4200戰鷹(Battle Eagle)系列 實時頻譜分析記錄回放系統 精準采集&#xff5c;高效回放&#xff5c;拓展頻譜分析新邊界 坤馳科技傾力打造新一代集實時頻譜分析、高速信號記錄與精準信號回放于一體的便攜式系統&#xff0c;為無線電監測、無線通信、國防等領域提供全面而高…

Flask(二) 路由routes

文章目錄 基本路由定義路由參數路由規則設置請求方法&#xff08;GET/POST&#xff09;路由函數返回靜態文件和模板Blueprint&#xff08;模塊化路由&#xff09;顯示當前所有路由 Flask 路由是 Web 應用程序中將 URL 映射到 Python 函數的機制。 定義路由&#xff1a;使用 app…

在el-image組件的預覽中添加打印功能(自定義功能)

思路&#xff1a;給圖片添加點擊事件&#xff0c;通過js獲取預覽的工具欄&#xff0c;在工具欄中添加自定義按鈕及事件 1、html 中 image標簽 <el-image style"width: 139px; height: 89px" :src"fileUrl" :preview-src-list"[fileUrl]" cli…

TongWeb替換tomcat

1、背景 國家近年來大力推進信息技術應用創新產業&#xff08;信創&#xff09;&#xff0c;要求關鍵領域采用自主可控的國產軟硬件。Tomcat作為國外開源產品&#xff0c;存在潛在的安全風險和技術依賴。TongWeb作為國產中間件&#xff0c;符合信創目錄要求&#xff0c;滿足政府…

聯合語音和文本機器翻譯,支持多達100種語言(nature子刊論文研讀)

簡介&#xff1a; &#x1f30d; SEAMLESSM4T 是一種單一模型&#xff0c;實現了跨越多達 101 種源語言和多種目標語言的語音到語音、語音到文本、文本到語音和文本到文本翻譯及自動語音識別。&#x1f680; 該模型性能顯著超越現有級聯系統&#xff0c;特別是在語音到文本和語…

網站公安網安備案查詢API集成指南

網站公安網安備案查詢API集成指南 引言 隨著互聯網應用的日益普及&#xff0c;網絡安全和個人隱私保護越來越受到重視。公安網安備案作為保障網絡安全的重要措施之一&#xff0c;對于確保網站合法合規運營具有重要意義。為了幫助開發者更加便捷地獲取網站的公安網安備案信息&a…

如何用遠程調試工具排查 WebView 與原生通信問題(iOS或Android)

WebView 在移動端開發中的角色越來越關鍵&#xff0c;尤其在混合架構&#xff08;Hybrid&#xff09;項目中&#xff0c;它作為前端與原生的橋梁&#xff0c;承載了大量交互行為。但這個橋梁并不總是穩固&#xff0c;尤其是在涉及 JSBridge 通信 時&#xff0c;前端調用原生接口…

使用 spark-submit 運行依賴第三方庫的 Python 文件

python文件在spark集群運行真的麻煩&#xff0c;煩冗 spark運行分為了三個模式&#xff0c;本地模式/client模式/cluster模式 文章目錄 本地模式client模式cluster模式參考 本地模式 現在的spark支持python3了&#xff0c;支持python2的版本已經很落后了&#xff0c;所以需要…

【android bluetooth 協議分析 05】【藍牙連接詳解2】【acl_interface_t介紹】

1. acl_interface_t 介紹 acl_interface_t 結構體及其子結構體&#xff0c;目的是封裝處理 Classic、LE、SCO 連接及鏈路事件的回調函數&#xff0c;用于 HCI 事件與上層藍牙協議棧的解耦分發。 system/main/shim/acl_legacy_interface.h typedef struct {void (*on_connect…

TouchDIVER Pro觸覺手套:虛擬現實中的多模態交互新選擇

隨著虛擬現實技術的發展&#xff0c;用戶對沉浸式體驗的需求不斷提升。TouchDIVER Pro觸覺手套通過力反饋、紋理渲染和溫度提示三種核心機制&#xff0c;為用戶提供更真實的觸覺感知體驗。六個驅動點分布于五指與手掌&#xff0c;結合全手追蹤與低延遲連接&#xff0c;實現精準…

想考華為HCIA-AI,應該怎么入門?

華為HCIA-AI Solution認證作為華為人工智能認證體系的起點&#xff0c;吸引了許多希望進入AI領域或提升專業技能的學習者。如果你正考慮考取這個認證&#xff0c;這份純科普向的入門指南希望能夠幫你理清學習路徑和關鍵準備點&#xff01; 第一、明確認證目標與要求 HCIA-AI S…

【Oracle篇】Windows平臺單進程多線程架構設計與實現(比對Linux多進程架構)

&#x1f4ab;《博主主頁》&#xff1a; &#x1f50e; CSDN主頁__奈斯DB &#x1f50e; IF Club社區主頁__奈斯、 &#x1f525;《擅長領域》&#xff1a;擅長阿里云AnalyticDB for MySQL(分布式數據倉庫)、Oracle、MySQL、Linux、prometheus監控&#xff1b;并對SQLserver、N…

在微服務中使用 Sentinel

在微服務中集成 Sentinel 1. 添加依賴 對于 Spring Cloud 項目&#xff0c;首先需要添加 Sentinel 的依賴&#xff1a; <!-- Spring Cloud Alibaba Sentinel --> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-…

中斷控制與實現

一、中斷基本概念 1、中斷 中斷是一種異步事件&#xff0c;用于通知處理器某個事件已經發生&#xff0c;需要處理器立即處理。由于I/O操作的不確定因素以及處理器和I/O設備之間的速度不匹配&#xff0c;I/O設備可以通過某種硬件信號異步喚醒對應的處理器的響應&#xff0c;這些…

前端跨域解決方案(7):Node中間件

1 Node 中間件核心 1.1 為什么開發環境需要 Node 代理&#xff1f; 在前端開發中&#xff0c;我們常遇到&#xff1a;前端運行在localhost:3000&#xff0c;后端 API 在localhost:4000&#xff0c;跨域導致請求失敗。而傳統解決方案有以下局限性&#xff1a; 修改后端 CORS 配…