python專案開發

oldlee.cn發表於2020-03-24

1、安裝python


使用secrueCRT 進入遠端伺服器

tmux

然後先安裝python3.7,也就是和本地專案對應的python環境

在這裡找到需要的python版本
https://www.python.org/ftp/python/

執行下面的命令

wget -c https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

提前安裝好系統依賴包:

centos:

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++  openssl-devel libffi-devel python-devel mariadb-devel

ubuntu:

sudo apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libmysqlclient-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev
  1. 獲取
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
tar -xzvf Python-3.7.2.tgz -C  /tmp
cd  /tmp/Python-3.7.2/
  1. 把Python3.7安裝到 /usr/local 目錄
./configure --prefix=/usr/local
make
make altinstall
  1. 更改/usr/bin/python連結,便於操作
ln -s /usr/local/bin/python3.7 /usr/bin/python3

然後鍵入

python3

,即可檢視python版本。

如果你要使用Python3作為python的預設版本,

你需要修改一下 bashrc 檔案,增加一行alias引數

alias python='/usr/local/bin/python3.7'

由於CentOS 7建議不要動/etc/bashrc檔案,而是把使用者自定義的配置放入/etc/profile.d/目錄中,具體方法為

vi /etc/profile.d/python.sh

輸入alias引數 alias python="/usr/local/bin/python3.7",儲存退出
如果非root使用者建立的檔案需要注意設定許可權

chmod 755 /etc/profile.d/python.sh

重啟會話使配置生效

source /etc/profile.d/python.sh

2、安裝虛擬環境


安裝好pip的情況下,可以先進行安裝升級:

pip install --upgrade pip

centos上先安裝:

yum install python-setuptools python-devel
pip install virtualenvwrapper

這裡在pip install virtualenvwrapper報錯的的話:

解決辦法:
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pbr
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps stevedore
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps virtualenvwrapper

然後在執行安裝virtualenvwrapper:

pip install virtualenvwrapper

編輯.bashrc檔案

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

這裡的virtualenvwrapper.sh的檔案目錄要寫對,可以在執行前先找一下:

sudo find / -name virtualenvwrapper.sh

重新載入.bashrc檔案

source  ~/.bashrc

新建虛擬環境:

mkvirtualenv oldleeenv

注意:這裡需要指定python3來建立虛擬環境,不然預設都是python2,然後後續的安裝包都會出問題

mkvirtualenv -p /usr/bin/python3 oldlee_env

進入虛擬環境

workon oldleeenv

退出虛擬環境

deactivate

3、安裝pip3


install pip for python3.x

1.首先安裝setuptools
  小夥伴們可以通過官方模組庫來下載:https://pypi.python.org/pypi

wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26

tar -zxvf setuptools-19.6.tar.gz

cd setuptools-19.6.tar.gz

python3 setup.py build

python3 setup.py install

然後直接安裝pip就搞定了。。
  同樣先下載然後在執行命令搞定!!

wget --no-check-certificate  https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz#md5=3a73c4188f8dbad6a1e6f6d44d117eeb

tar -zxvf pip-8.0.2.tar.gz

cd pip-8.0.2

python3 setup.py build

python3 setup.py install

4、批量安裝專案依賴包


開啟原專案本機電腦的終端,進入虛擬環境:

workon oldlee_env

然後將原專案虛擬環境的依賴包相關資訊匯出來

pip freeze > requirements.txt 

(檔案生成目錄:Macintosh HD  - 使用者 - oldlee)

然後將這個檔案傳輸到遠端伺服器專案所在目錄,可使用secureCRT。

然後進入伺服器終端:

進入專案(即requirements.txt 檔案)所在目錄:

pip install -r requirements.txt

即可;

過程中在安裝django時會報錯:

然後輸入命令:python,發現時預設python2:
python2.7.2(default。。。。)

解決方法:根據下面的命令將預設版本設定為python3:

你需要修改一下 bashrc 檔案,增加一行alias引數
alias

python='/usr/local/bin/python3.7'

由於CentOS 7建議不要動/etc/bashrc檔案,而是把使用者自定義的配置放入/etc/profile.d/目錄中,具體方法為

vi /etc/profile.d/python.sh

輸入alias引數 alias python="/usr/local/bin/python3.7",儲存退出

如果非root使用者建立的檔案需要注意設定許可權

chmod 755 /etc/profile.d/python.sh

重啟會話使配置生效

source /etc/profile.d/python.sh

然後輸入命令:

python

,發現現在預設python3:

然後再執行:

python -m pip3 install -r requirements.txt

執行全部安裝

5、models類的設計


首先匯入:
from django.db import models

class OrderInfo(models.Model):
    """
    訂單
    """
    ORDER_STATUS = (
        ("TRADE_SUCCESS", "成功"),
        ("TRADE_CLOSED", "超時關閉"),
        ("WAIT_BUYER_PAY", "交易建立"),
        ("TRADE_FINISHED", "交易結束"),
        ("paying", "待支付"),
    )

    user = models.ForeignKey(User, verbose_name="使用者",on_delete=models.CASCADE)
    order_sn = models.CharField(max_length=30, null=True, blank=True, unique=True, verbose_name="訂單號")
    # 這個trade_no欄位是表明第三方支付的訂單號,和本系統的訂單做關聯
    trade_no = models.CharField(max_length=100, unique=True, null=True, blank=True, verbose_name=u"交易號")
    pay_status = models.CharField(choices=ORDER_STATUS, default="paying", max_length=30, verbose_name="訂單狀態")
    post_script = models.CharField(max_length=200, verbose_name="訂單留言")
    order_mount = models.FloatField(default=0.0, verbose_name="訂單金額")
    pay_time = models.DateTimeField(null=True, blank=True, verbose_name="支付時間")

    # 使用者資訊
    address = models.CharField(max_length=100, default="", verbose_name="收貨地址")
    signer_name = models.CharField(max_length=20, default="", verbose_name="簽收人")
    singer_mobile = models.CharField(max_length=11, verbose_name="聯絡電話")

    add_time = models.DateTimeField(default=datetime.now, verbose_name="新增時間")

    class Meta:
        verbose_name = u"訂單"   #後臺標題名稱
        verbose_name_plural = verbose_name

    def __str__(self):
        return str(self.order_sn)

然後執行

migrations

,生成資料檔案;

然後執行

migrate

,生成資料表

相關文章