python 环境设置

本贴最后更新于 2720 天前,其中的信息可能已经水流花落

源代码安装 Python

#预置条件
sudo apt-get install -y \
autotools-dev      \
blt-dev            \
bzip2              \
dpkg-dev           \
g++-multilib       \
gcc-multilib       \
libbluetooth-dev   \
libbz2-dev         \
libexpat1-dev      \
libffi-dev         \
libffi6            \
libffi6-dbg        \
libgdbm-dev        \
libgpm2            \
libncursesw5-dev   \
libreadline-dev    \
libsqlite3-dev     \
libssl-dev         \
libtinfo-dev       \
mime-support       \
net-tools          \
netbase            \
python-crypto      \
python-mox3        \
python-pil         \
python-ply         \
quilt              \
tk-dev             \
zlib1g-dev
# 安装
wget https://www.python.org/ftp/python/2.7.*/Python-2.7.*.tgz
tar xfz Python-2.7.*.tgz
cd Python-2.7.*/
./configure --prefix /usr/local/lib/python2.7.* --enable-ipv6
make
sudo make install
# 修改符号链接
sudo rm -r /usr/bin/python
sudo ln -s /usr/local/lib/python2.7.12/bin/python /usr/bin/python

但是安装 pip 不成功,有问题。不建议采用这种方式

devpi-server 设置

#使用全局安装
pip install -U devpi-server

Pypi 私有仓库

配置访问权限

sudo apt-get install apache2-utils
htpasswd -sc $password_file $user_name

构建 virtualenv,并激活后安装相关组件

pip install pypiserver
pip install passlib
# 启动
exec /data/tools/pypi/pypi-virtualenv/bin/pypi-server -p 3141 -P $password_file $package_path

Supervisor 配置样例

[program:pypi-server]
command=/data/tools/pypi/pypi-virtualenv/bin/pypi-server -p 3141 -P /data/tools/pypi/.htaccess /data/tools/pypi/packages
;directory=/data/tools/cow
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisor/pypi-server.err.log
stdout_logfile=/var/log/supervisor/pypi-server.out.log

Setting up a private, team-wide PyPI repository

CentOS/Redhat 升级 Python

下载、编译及安装

yum -y update
yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

wget http://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar
tar xvf Python-2.7.11.tar
./configure
make
make altinstall

以上安装后运行 **python2.7 **即可调用

安装 easy_setup 和 pip

# easy setup
wget https://bootstrap.pypa.io/ez_setup.py
python2.7 ez_setup.py
easy_install-2.7 pip
pip2.7 install [packagename]
pip2.7 install --upgrade [packagename]
pip2.7 uninstall [packagename]

# pip 
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Virtualenv 相关

安装 virtualenv

sudo apt-get install python-pip python-dev
sudo pip install virtualenv

如果安装 Python3 的话,则安装 python3-dev

设置 virtualenv

mkdir $myprojectenv
# 使用默认python初始化
virtualenv $myprojectenv
# 使用特定版本初始化
virtualenv -p /usr/bin/python2.6 $myprojectenv
#激活virtualenv
source $myprojectenv/bin/activate
#关闭virtualenv
deactivate

pip 相关

pip 使用镜像

https://pypi.python.org/simple

常用国内源

清华 https://pypi.tuna.tsinghua.edu.cn/simple
中科大 https://pypi.mirrors.ustc.edu.cn/simple
豆瓣 https://pypi.douban.com/simple

pip 安装

sudo apt-get install python-pip python-dev build-essential 
sudo pip install --upgrade pip 
sudo pip install --upgrade virtualenv

pip 检索组件

查看当前所安装的组件版本,如以下查看 psycopg2 版本
pip freeze | grep psycopg2

pip 获取当前所依赖的组件清单

pip freeze
#导出到文件
pip freeze > requirements.txt

pip 从文件开始安装组件

pip install -r requirements.txt

pip 更新全部组件

pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U

pip 使用代理

sudo pip install --proxy user:password@proxyserver:port $package

pip 使用特定来源

sudo pip install $package -i $https://pypi.tuna.tsinghua.edu.cn/simple

pip 不同的 Python 版本

virtualenv --no-site-packages --distribute -p /usr/bin/python3.3 ~/.virtualenvs/pywork3

pip 私有仓库上传下载

编辑** .pypirc **文件,该文件在 Linux 的HOME目录下(即~),windows的HOME 目录,可以通过

[distutils]
index-servers =
    pypi
    other

[pypi]
repository: 
username: 
password: 

[other]
repository: http://example.com/pypi
username: 
password: 

注册及上传,下载

python setup.py register -r http://example.com/pypi
python setup.py sdist upload -r other
pip install -i http://localhost:3141/simple/ $packagename

python pypi 私有源搭建

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...