为什么安装的python方法导致uwsgi中的sys.path不同?

时间:2019-02-14 14:03:36

标签: python makefile uwsgi

我从源代码编译了uswgi,发现用make install和make altinstall安装python时sys.path不同。

1·使用“ make install”安装python3.6.8

cd Python-3.6.8
./configure 
make 
make install
cd uwsgi-2.0.18
python3.6 uwsgiconfig.py --build  

2。使用'make altinstall'安装python3.6.8

cd Python-3.6.8
./configure 
make 
make altinstall
python3.6 uwsgiconfig.py --build

我获得了uswgi二进制文件,并将其移至我的项目目录。

我的目录结构:

testuwsgi/
    |-- foobar.py
    |-- lib
    |-- uwsgi

foobar.py是我的uwsgi应用程序文件。

import sys
print(str(sys.path))
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    response = str(sys.path)
    print(str(sys.path))
    return [response]

lib目录是从/usr/local/lib/python3.6/复制的。

我启动了uwsgi应用程序:

./uwsgi --http :9090 --wsgi-file foobar.py

最后结果是不同的。

使用make install印出的sys.path是:

['.', 
'/root/testuwsgi', 
'/usr/local/lib/python36.zip', 
'/usr/local/lib/python3.6', 
'/usr/local/lib/python3.6/lib-dynload', 
'/usr/local/lib/python3.6/site-packages', 
'/usr/local/lib/python3.6/site-packages/requests-2.21.0-py3.6.egg', 
'/usr/local/lib/python3.6/site-packages/cbor-1.0.0-py3.6.egg']

使用make altinstall打印的sys.path是:

['.', 
'/root/testuwsgi', 
'/root/testuwsgi/lib/python36.zip', 
'/root/testuwsgi/lib/python3.6', 
'/root/testuwsgi/lib/python3.6/lib-dynload', 
'/root/testuwsgi/lib/python3.6/site-packages']

当我更改uwsgi项目目录时,第二种方法所使用的uswgi也会根据目录路径更改sys.path。

似乎“ make install”和“ make altinstall”使uswgi设置了不同的sys.path。

我想知道为什么当用'make install'和'make altinstall'安装python时uswgi表现出不同。

0 个答案:

没有答案