我有一个问题,当我在Linux服务器上运行代码时,我得到:
ModuleNotFoundError:没有名为“ _sqlite3”的模块
因此,在研究之后,我发现在安装python时应该已经安装了sqlite3,但事实并非如此。 我认为问题出在我安装python的方式上。由于我没有sudo权限,因此我在本地目录中使用This guide安装了python3.7。 我能找到的所有关于sqlite3问题的解决方案都需要sudo命令。
还有另一种方法可以在不使用任何sudo命令的情况下将python3.7和sqlite3一起安装到本地Linux目录中吗?
我希望我已经清楚地陈述了我的问题,我将很感激我能获得的所有帮助。谢谢!
答案 0 :(得分:0)
在没有“ sudo”特权的Linux系统中安装python软件包时,可以使用
对于Python 3
pip install --no-cache-dir flask
您可以使用相同的方法安装任何第三方软件包
pip3 install --user pysqlite3
pip install的pip3 install --user PACKAGE_NAME
标志告诉Pip将软件包安装在主目录中的某些特定目录中。有关更多信息,click here。
希望对您有帮助!
答案 1 :(得分:0)
解决方案是首先将 sqlite3 构建到用户目录中,然后使用该目录的库构建 python 并包含头文件。特别是@Ski有answered一个关于python 2的类似问题,可以被python 3采用:
$ mkdir -p ~/applications/src
$ cd ~/applications/src
$ # Download and build sqlite 3 (you might want to get a newer version)
$ wget http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz
$ tar xvvf sqlite-autoconf-3070900.tar.gz
$ cd sqlite-autoconf-3070900
$ ./configure --prefix=~/applications
$ make
$ make install
$ # Now download and build python 2, same works for python 3
$ cd ~/applications/src
$ wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
$ tar xvvf Python-2.5.2.tgz
$ cd Python-2.5.2
$ ./configure --prefix=~/applications
$ make
$ make install
$ ~/applications/bin/python
或者,如果您出于某种原因必须指定不同的 --prefix
(这在我身上发生过 pyenv
),请在配置 python 时使用 LDFLAGS
和 CPPFLAGS
构建:
$ ./configure LDFLAGS=-L/home/user/applications/lib/ CPPFLAGS=-I/home/user/applications/include/