在python3.8裏import sqlalchemy出錯

最近在linux centos裏安裝了python3.8,也安裝了sqlalchemy, 如下所示:

[root@localhost Python-3.8.0]# python3
Python 3.8.0 (default, Nov 26 2019, 22:35:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sqlalchemy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sqlalchemy'
>>> quit()
[root@localhost Python-3.8.0]# python3 --version
Python 3.8.0
[root@localhost Python-3.8.0]#
[root@localhost Python-3.8.0]#
[root@localhost Python-3.8.0]# pip3 install SQLAlchemy
Requirement already satisfied: SQLAlchemy in /usr/local/python3/lib/python3.8/site-packages (1.3.11)
[root@localhost Python-3.8.0]# cd /usr/local/python3/lib/python3.8/
 

這個問題搞了好久,我也去安裝位置看看,都正常,如下:

[root@localhost python3.8]# cd site-packages/
[root@localhost site-packages]# ll
total 20
-rw-r--r--.  1 root root  126 Nov 27 22:05 easy_install.py
drwxr-xr-x.  2 root root  117 Nov 30 07:22 mysqlclient-1.4.6-py3.8.egg-info
drwxr-xr-x.  4 root root  240 Nov 30 07:22 MySQLdb
drwxr-xr-x.  5 root root   95 Nov 29 20:59 pip
drwxr-xr-x.  2 root root  130 Nov 29 20:59 pip-19.3.1.dist-info
drwxr-xr-x.  5 root root   94 Nov 27 22:05 pkg_resources
drwxr-xr-x.  2 root root  123 Nov 30 20:40 __pycache__
-rw-r--r--.  1 root root  119 Nov 30 20:38 README.txt
drwxr-xr-x.  6 root root 4096 Nov 27 22:05 setuptools
drwxr-xr-x.  2 root root  170 Nov 27 22:05 setuptools-41.2.0.dist-info
drwxr-xr-x. 14 root root 4096 Nov 30 07:26 sqlalchemy
drwxr-xr-x.  2 root root  137 Nov 30 07:26 SQLAlchemy-1.3.11-py3.8.egg-info
drwxr-xr-x.  5 root root 4096 Nov 29 21:17 tornado
drwxr-xr-x.  2 root root  117 Nov 29 21:17 tornado-6.0.3-py3.8.egg-info
[root@localhost site-packages]# cd sqlalchemy/
 

後來懷疑是不是因爲我的系統裏既有python2.7也有python3.8的原因,並且對於python的link目前還是python2.

就試着改爲python3, 如下:

[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root    7 Nov 27 21:27 python -> python2
lrwxrwxrwx. 1 root root    9 Nov 27 21:27 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Aug  7 08:52 python2.7
lrwxrwxrwx. 1 root root   30 Nov 27 22:07 python3 -> /usr/local/python3/bin/python3
[root@localhost bin]# mv python python.bak
[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root    9 Nov 27 21:27 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Aug  7 08:52 python2.7
lrwxrwxrwx. 1 root root   30 Nov 27 22:07 python3 -> /usr/local/python3/bin/python3
lrwxrwxrwx. 1 root root    7 Nov 27 21:27 python.bak -> python2
[root@localhost bin]# ln -s /usr/local/python3/bin/python3 /usr/bin/python
[root@localhost bin]# ll python*
lrwxrwxrwx. 1 root root   30 Nov 30 21:44 python -> /usr/local/python3/bin/python3
lrwxrwxrwx. 1 root root    9 Nov 27 21:27 python2 -> python2.7
-rwxr-xr-x. 1 root root 7216 Aug  7 08:52 python2.7
lrwxrwxrwx. 1 root root   30 Nov 27 22:07 python3 -> /usr/local/python3/bin/python3
lrwxrwxrwx. 1 root root    7 Nov 27 21:27 python.bak -> python2
 

但是yum是依賴python2的,所以需要改一下文件,

如下:

[root@localhost bin]# python -V
Python 3.8.0
[root@localhost bin]# vi /usr/bin/yum
[root@localhost bin]# vi /usr/libexec/urlgrabber-ext-down
[root@localhost bin]# vi /usr/bin/yum
[root@localhost bin]# vi /usr/libexec/urlgrabber-ext-down
[root@localhost bin]#
[root@localhost bin]#
[root@localhost bin]# python -V
Python 3.8.0
[root@localhost bin]# python2 -V
Python 2.7.5
[root@localhost bin]# pip3 install sqlalchemy
Requirement already satisfied: sqlalchemy in /usr/local/python3/lib/python3.8/site-packages (1.3.1                                                                             1)
[root@localhost bin]# python
Python 3.8.0 (default, Nov 30 2019, 20:37:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> import sys
>>> print(sys.path)
['', '/usr/local/python3/lib/python38.zip', '/usr/local/python3/lib/python3.8', '/usr/local/python                                                                             3/lib/python3.8/lib-dynload', '/usr/local/python3/lib/python3.8/site-packages']
如上面紅色字體所示,import成功。

參考博客:https://www.cnblogs.com/JahanGu/p/7452527.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章