1. 华为云Ubuntu主机环境准备

第一次接触华为云Ubuntu主机的开发者可能会被各种配置项搞得手忙脚乱。作为一个在云端环境折腾过多年的老手,我建议从这几个关键点入手:

首先登录华为云控制台,选择"开发者空间"创建云主机实例。这里有个小技巧:选择Ubuntu 22.04 LTS版本最稳妥,因为这个长期支持版本经过充分验证,社区资源也最丰富。配置方面,个人开发选择4核8G的KC2规格就足够流畅运行大多数Python项目了。

创建完成后,你会获得一个纯净的Ubuntu系统。先别急着装Python,有件更重要的事要做——配置SSH密钥登录。在本地终端执行:

ssh-keygen -t rsa -b 4096

然后把生成的公钥(~/.ssh/id_rsa.pub)内容添加到云主机的SSH密钥管理中。这样既安全又方便,以后登录不用反复输密码。

注意:华为云主机的默认用户是ubuntu,首次登录建议立即修改密码:sudo passwd ubuntu

2. 系统基础配置优化

2.1 软件源加速配置

新主机第一件事就是换源!华为云内置的Ubuntu源有时会有延迟,我实测用华为镜像源速度能提升3-5倍。具体操作:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak  # 先备份
sudo sed -i 's/ports.ubuntu.com/repo.huaweicloud.com/g' /etc/apt/sources.list
sudo apt update

这个命令做了三件事:

  1. 备份原始源配置
  2. 将所有官方源替换为华为镜像源
  3. 更新软件索引

2.2 基础工具安装

开发离不开这些工具包,一次性装好省得后面反复折腾:

sudo apt install -y build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev \
libffi-dev liblzma-dev git

这里面包含了Python编译依赖、Git版本控制等必备工具。曾经我漏装libssl-dev导致pip安装加密包失败,排查了半天才发现问题。

3. Python环境搭建

3.1 多版本Python管理

虽然系统自带Python3,但版本可能较旧。推荐用pyenv管理多版本:

curl https://pyenv.run | bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

安装Python 3.10.6(这个版本兼容性最好):

pyenv install 3.10.6
pyenv global 3.10.6

验证安装:

python -V  # 应显示Python 3.10.6

3.2 虚拟环境最佳实践

每个项目都应该有独立环境。推荐使用virtualenvwrapper更高效管理:

pip install virtualenvwrapper
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "export VIRTUALENVWRAPPER_PYTHON=$(which python)" >> ~/.bashrc
echo "source /home/ubuntu/.local/bin/virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc

创建项目环境:

mkvirtualenv myproject -p $(which python)
workon myproject  # 进入环境
deactivate  # 退出环境
rmvirtualenv myproject  # 删除环境

4. 开发工具链配置

4.1 IDE远程开发配置

VS Code配合Remote-SSH插件是云端开发的神器。安装后:

  1. 按Ctrl+Shift+P输入"Remote-SSH: Connect to Host"
  2. 添加你的华为云主机IP
  3. 连接后安装Python扩展

这样就能在本地获得完整的代码提示、调试功能,文件自动同步,比vim友好多了。

4.2 Jupyter Notebook配置

对于数据分析项目,配置Jupyter远程访问很实用:

pip install notebook
jupyter notebook --generate-config
echo "c.NotebookApp.ip = '0.0.0.0'" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.open_browser = False" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.port = 8888" >> ~/.jupyter/jupyter_notebook_config.py

启动服务:

jupyter notebook --no-browser

在本地浏览器访问http://<你的云主机IP>:8888,输入终端显示的token即可。

5. 性能调优技巧

5.1 SWAP空间优化

小内存主机容易OOM,添加SWAP能有效缓解:

sudo fallocate -l 4G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

5.2 文件描述符限制

高并发应用需要调整系统限制:

echo "fs.file-max = 65535" | sudo tee -a /etc/sysctl.conf
echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.conf
sudo sysctl -p

5.3 持久化SSH连接

避免频繁断开,修改SSH配置:

echo "ClientAliveInterval 60" | sudo tee -a /etc/ssh/sshd_config
echo "ClientAliveCountMax 3" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd

6. 安全加固措施

6.1 基础安全配置

sudo apt install fail2ban  # 防暴力破解
sudo ufw enable  # 启用防火墙
sudo ufw allow 22  # 开放SSH端口
sudo ufw allow 8888  # 如果要用Jupyter

6.2 定期维护命令

建议加入crontab的维护任务:

0 3 * * * apt update && apt upgrade -y  # 每天3点自动更新
0 4 * * * /usr/bin/find /tmp -type f -atime +7 -delete  # 清理临时文件

7. 疑难问题排查

遇到pip安装失败时,先检查:

  1. 虚拟环境是否激活
  2. 是否有足够磁盘空间(df -h
  3. 网络连接是否正常(ping repo.huaweicloud.com

常见错误解决方案:

# SSL证书问题
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org package

# 缓存清理
pip cache purge

云端开发最大的优势就是环境一致性。记得把完整的环境配置写成脚本,下次新建主机时一键执行就能复现开发环境。我在团队内部维护了一个setup.sh脚本,包含所有基础配置,新成员入职5分钟就能搭好环境开始coding。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐