这是我的情况:
我正在使用Ubuntu 10.04(Lucid Lynx).系统的默认Python是v2.6.5,但我需要Python v2.7.所以我从python.org下载了源代码并尝试安装它.
我第一次安装它时,我跑了:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make install
Run Code Online (Sandbox Code Playgroud)
这会将Python 2.7安装到我的系统中.它将创建一个链接,"python",也/usr/bin链接到.因此,当我输入时,系统将为我启动Python 2.7.4,就像我输入时一样.python2.7/usr/bin>python>python2.7
但是当我以这种方式安装时:
cd Python2.7.4
./configure --prefix=/usr
make
su root
make altinstall
Run Code Online (Sandbox Code Playgroud)
链接"python" /usr/bin仍然存在,并且链接到python2.6默认系统版本.当然,我可以删除它并创建一个链接到的新软链接python2.7.
除了链接之外,命令"make install"和"make altinstall"之间有什么区别/usr/bin?
尽管安装了插件,我似乎无法使用Nose进行代码覆盖.
有想法该怎么解决这个吗?
12:15:25 ~/sandbox/ec$ nosetests --plugins
Plugin xunit
Plugin deprecated
Plugin skip
Plugin multiprocess
Plugin failuredetail
Plugin capture
Plugin logcapture
Plugin coverage
Plugin attributeselector
Plugin doctest
Plugin profile
Plugin id
Plugin allmodules
Plugin collect-only
Plugin isolation
Plugin pdb
12:15:34 ~/sandbox/ec$ nosetests -v --with-coverage
nose.plugins.cover: ERROR: Coverage not available: unable to import coverage module
tests.edgecast_client_tests.test_log ... ok
----------------------------------------------------------------------
Ran 1 test in 0.206s
OK
Run Code Online (Sandbox Code Playgroud) 我在我的rhel 5上安装了django 1.4.默认情况下,rhel 5有python 2.4但是要使用django 1.4我手动安装python 2.7.3开发服务器运行正常,但是当我创建一个新项目并更改设置后. py文件为:
'ENGINE':'django.db.backends.sqlite3','NAME':'/ home/oracle /Desktop/test1/my.db'
现在,当我给出python2.7 manage.py syncdb命令时,我得到的错误为:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 443, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 261, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py",
line 69, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/usr/local/lib/python2.7/site-packages/django/utils/importlib.py",
line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py",
line 8, in <module>
from django.core.management.sql import custom_sql_for_model,
emit_post_sync_signal …Run Code Online (Sandbox Code Playgroud) 我无法在Python 3.5.0版本中导入sqlite3模块.这是我得到的:
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.5/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'
Run Code Online (Sandbox Code Playgroud)
我知道,我知道,网络上有大量的StackOverflow帖子和支持论坛,人们抱怨这个问题,但到目前为止,所发布的解决方案都没有对我有用.这是我去过的地方:
我也在这台服务器上安装了Python 2.6.6,运行CentOS 6.8 x86_64.我可以在使用Python 2.6.6时打开Python REPL并导入sqlite3.我也可以直接从bash使用sqlite3,似乎什么都没有.
这个有用的问题很有希望.我尝试使用该--enable-loadable-sqlite-extensions选项重新配置和重新编译Python3.5 ,如用户jammyWolf建议的那样.不,同样的错误仍然存在.
我一直在使用虚拟环境,就像一个好孩子,但我有root访问权限.所以,我是一个坏男孩,并在没有任何virtualenvs激活的情况下以root身份运行python3.仍然没有运气.所以我不认为它与权限有任何关系.
我注意到,在错误消息中,它说No module named '_sqlite3'.此线程建议模块名称前面的下划线表示该模块是实现细节,并且未在API中公开.......我不知道该如何处理这些信息,但在那里可能会有一些暗示.
有任何想法吗?
完整免责声明:过去 6 周我一直在使用 buildroot。这是我第一次接触嵌入式Linux,因此我还很新手,但已经能够自己解决99%的问题。在很大程度上,这个过程很简单。
因此,当我被困在家里且无法工作时,为了让自己忙碌起来,我一直致力于嵌入式硬件项目。我已经选择了我的硬件,构建了一个原型,学习了 buildroot 基础知识,启动了基本系统,优化了内核配置,为我的硬件构建了一个自定义设备树,到目前为止我很高兴。
与此同时,我一直在桌面上用 python 编写目标应用程序,它依赖于一些库(硬件抽象、通信、显示等),但相对简单。
我已经有了一份构建到我的 buildroot 系统中所需的软件包列表。buildroot 工具在这里使用 scanpypi 工具非常有用:
~/buildroot$ utils/scanpypi diskcache -o package
Run Code Online (Sandbox Code Playgroud)
只需将所有依赖项添加到 /package/config.in 中,就可以在 menuconfig 中选择它们并将其添加到配方中。
问题出现在构建时,对于 python-diskcache 上面的模块,Python 模块的构建失败。
它依赖于一些东西,但其中之一是 slqite3,它已添加为: 核心 python 模块“sqlite module”外部包“python-pysqlite3”库>数据库> sqlite
但是,它在构建时失败:
>>> python-diskcache 4.1.0 Building
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import diskcache
File "/home/buildroot/output/build/python-diskcache-4.1.0/diskcache/__init__.py", line 9, in <module>
from .core import Cache, Disk, EmptyDirWarning, JSONDisk, UnknownFileWarning, Timeout
File "/home/buildroot/output/build/python-diskcache-4.1.0/diskcache/core.py", line 14, in <module>
import sqlite3
File "/home/buildroot/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/python3.8/sqlite3/__init__.py", …Run Code Online (Sandbox Code Playgroud) 我正在使用Python3.4,我最近从python 3.3.2升级.
我正在按照这些说明如何安装报纸,这是一个python库/工具.
https://github.com/codelucas/newspaper
Run Code Online (Sandbox Code Playgroud)
执行此命令后我遇到错误:
curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
Run Code Online (Sandbox Code Playgroud)
注意:我在上面的命令中也指定了python3.4并且我得到相同/以下输出/错误:
import sqlite3
File "/usr/local/lib/python3.4/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.4/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named '_sqlite3'
[root@neil bin]# curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3.4
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 657 100 657 0 0 206 0 0:00:03 0:00:03 --:--:-- 206
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) python ×4
sqlite ×4
python-3.x ×2
buildroot ×1
coverage.py ×1
dependencies ×1
django ×1
django-admin ×1
install ×1
linux ×1
makefile ×1
nose ×1