我使用的是VMplayer,我的操作系统是Lubuntu 14.04。它附带一个预装的python3.4.0,但我想安装python3.4.3。我从here下载了.tar.xz文件。
然后我提取文件并按照自述文件中的说明进行操作:
make test
我最初跑的时候
sudo apt-get install libssl-dev
它说“3次测试失败,3次改变执行环境,25次跳过”。我在这里发布了关于SO的问题: Installing Python3.4.3: 3 tests failed, 3 altered execution environment and 25 skipped
然后我做了
./configure
make
并且做了
Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2 _curses _curses_panel
_dbm _gdbm _lzma
_sqlite3 _tkinter readline
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
再次,它说:
make test
现在我尝试了
1 test failed:
test_ssl
2 tests altered the execution environment:
test___all__ test_warnings
21 tests skipped:
test_bz2 test_curses test_dbm_gnu test_dbm_ndbm test_devpoll
test_gdb test_idle test_kqueue test_lzma test_msilib
test_ossaudiodev test_readline test_sqlite test_startfile test_tcl
test_tk test_ttk_guionly test_ttk_textonly test_winreg
test_winsound test_zipfile64
Re-running failed tests in verbose mode
Re-running test 'test_ssl' in verbose mode
test_ssl: testing with 'OpenSSL 1.0.1f 6 Jan 2014' (1, 0, 1, 6, 15)
under Linux ('debian', 'jessie/sid', '')
HAS_SNI = True
OP_ALL = 0x-7ffffc01
OP_NO_TLSv1_1 = 0x10000000
test__create_stdlib_context (test.test_ssl.ContextTests) ... ok
test_cert_store_stats (test.test_ssl.ContextTests) ... ok
test_check_hostname (test.test_ssl.ContextTests) ... ok
test_ciphers (test.test_ssl.ContextTests) ... ok
test_constructor (test.test_ssl.ContextTests) ... ok
test_create_default_context (test.test_ssl.ContextTests) ... ok
test_get_ca_certs (test.test_ssl.ContextTests) ... ok
test_load_cert_chain (test.test_ssl.ContextTests) ... ok
test_load_default_certs (test.test_ssl.ContextTests) ... ok
test_load_default_certs_env (test.test_ssl.ContextTests) ... ok
test_load_default_certs_env_windows (test.test_ssl.ContextTests) ... skipped 'Windows specific'
test_load_dh_params (test.test_ssl.ContextTests) ... ok
test_load_verify_cadata (test.test_ssl.ContextTests) ... ok
test_load_verify_locations (test.test_ssl.ContextTests) ... ok
test_options (test.test_ssl.ContextTests) ... ok
test_protocol (test.test_ssl.ContextTests) ... ok
test_session_stats (test.test_ssl.ContextTests) ... ok
test_set_default_verify_paths (test.test_ssl.ContextTests) ... ok
test_set_ecdh_curve (test.test_ssl.ContextTests) ... ok
test_sni_callback (test.test_ssl.ContextTests) ... ok
test_sni_callback_refcycle (test.test_ssl.ContextTests) ... ok
test_verify_flags (test.test_ssl.ContextTests) ... ok
test_verify_mode (test.test_ssl.ContextTests) ... ok
test_DER_to_PEM (test.test_ssl.BasicSocketTests) ... ok
test_asn1object (test.test_ssl.BasicSocketTests) ... ok
test_constants (test.test_ssl.BasicSocketTests) ... ok
test_dealloc_warn (test.test_ssl.BasicSocketTests) ... ok
test_enum_certificates (test.test_ssl.BasicSocketTests) ... skipped 'Windows specific'
test_enum_crls (test.test_ssl.BasicSocketTests) ... skipped 'Windows specific'
test_errors (test.test_ssl.BasicSocketTests) ... ok
test_get_default_verify_paths (test.test_ssl.BasicSocketTests) ... ok
test_match_hostname (test.test_ssl.BasicSocketTests) ... ok
test_openssl_version (test.test_ssl.BasicSocketTests) ... ok
test_parse_cert (test.test_ssl.BasicSocketTests) ...
{'issuer': ((('countryName', 'XY'),),
(('localityName', 'Castle Anthrax'),),
(('organizationName', 'Python Software Foundation'),),
(('commonName', 'localhost'),)),
'notAfter': 'Oct 5 23:01:56 2020 GMT',
'notBefore': 'Oct 8 23:01:56 2010 GMT',
'serialNumber': 'D7C7381919AFC24E',
'subject': ((('countryName', 'XY'),),
(('localityName', 'Castle Anthrax'),),
(('organizationName', 'Python Software Foundation'),),
(('commonName', 'localhost'),)),
'subjectAltName': (('DNS', 'localhost'),),
'version': 3}
{'OCSP': ('http://ocsp.verisign.com',),
'caIssuers': ('http://SVRIntl-G3-aia.verisign.com/SVRIntlG3.cer',),
'crlDistributionPoints': ('http://SVRIntl-G3-crl.verisign.com/SVRIntlG3.crl',),
'issuer': ((('countryName', 'US'),),
(('organizationName', 'VeriSign, Inc.'),),
(('organizationalUnitName', 'VeriSign Trust Network'),),
(('organizationalUnitName',
'Terms of use at https://www.verisign.com/rpa (c)10'),),
(('commonName', 'VeriSign Class 3 International Server CA - G3'),)),
'notAfter': 'Sep 20 23:59:59 2012 GMT',
'notBefore': 'Sep 21 00:00:00 2011 GMT',
'serialNumber': '2EE6EA7640A075CEE5005F4D7C79549A',
'subject': ((('countryName', 'FI'),),
(('stateOrProvinceName', 'Espoo'),),
(('localityName', 'Espoo'),),
(('organizationName', 'Nokia'),),
(('organizationalUnitName', 'BI'),),
(('commonName', 'projects.developer.nokia.com'),)),
'subjectAltName': (('DNS', 'projects.developer.nokia.com'),
('DNS', 'projects.forum.nokia.com')),
'version': 3}
ok
test_parse_cert_CVE_2013_4238 (test.test_ssl.BasicSocketTests) ...
{'issuer': ((('countryName', 'US'),),
(('stateOrProvinceName', 'Oregon'),),
(('localityName', 'Beaverton'),),
(('organizationName', 'Python Software Foundation'),),
(('organizationalUnitName', 'Python Core Development'),),
(('commonName', 'null.python.org\x00example.org'),),
(('emailAddress', 'python-dev@python.org'),)),
'notAfter': 'Aug 7 13:12:52 2013 GMT',
'notBefore': 'Aug 7 13:11:52 2013 GMT',
'serialNumber': '00',
'subject': ((('countryName', 'US'),),
(('stateOrProvinceName', 'Oregon'),),
(('localityName', 'Beaverton'),),
(('organizationName', 'Python Software Foundation'),),
(('organizationalUnitName', 'Python Core Development'),),
(('commonName', 'null.python.org\x00example.org'),),
(('emailAddress', 'python-dev@python.org'),)),
'subjectAltName': (('DNS', 'altnull.python.org\x00example.com'),
('email', 'null@python.org\x00user@example.org'),
('URI', 'http://null.python.org\x00http://example.org'),
('IP Address', '192.0.2.1'),
('IP Address', '2001:DB8:0:0:0:0:0:1\n')),
'version': 3}
ok
test_purpose_enum (test.test_ssl.BasicSocketTests) ... ok
test_random (test.test_ssl.BasicSocketTests) ...
RAND_status is 1 (sufficient randomness)
ok
test_random_fork (test.test_ssl.BasicSocketTests) ... ok
test_refcycle (test.test_ssl.BasicSocketTests) ... ok
test_server_side (test.test_ssl.BasicSocketTests) ... ok
test_timeout (test.test_ssl.BasicSocketTests) ... ok
test_tls_unique_channel_binding (test.test_ssl.BasicSocketTests) ... ok
test_unknown_channel_binding (test.test_ssl.BasicSocketTests) ... ok
test_unsupported_dtls (test.test_ssl.BasicSocketTests) ... ok
test_wrapped_unconnected (test.test_ssl.BasicSocketTests) ... ok
test_lib_reason (test.test_ssl.SSLErrorTests) ... ok
test_str (test.test_ssl.SSLErrorTests) ... ok
test_subclass (test.test_ssl.SSLErrorTests) ... ok
test_algorithms (test.test_ssl.NetworkedTests) ...
Cipher with ('sha256.tbs-internet.com', 443) is ('RC4-SHA', 'TLSv1/SSLv3', 128)
Certificate is:
{'OCSP': ('http://ocsp.tbs-x509.com',),
'caIssuers': ('http://crt.tbs-internet.com/TBSX509CASGC.crt',
'http://crt.tbs-x509.com/TBSX509CASGC.crt'),
'crlDistributionPoints': ('http://crl.tbs-internet.com/TBSX509CASGC.crl',
'http://crl.tbs-x509.com/TBSX509CASGC.crl'),
'issuer': ((('countryName', 'FR'),),
(('stateOrProvinceName', 'Calvados'),),
(('localityName', 'Caen'),),
(('organizationName', 'TBS INTERNET'),),
(('organizationalUnitName',
'Terms and Conditions: '
'http://www.tbs-internet.com/CA/repository'),),
(('organizationalUnitName', 'TBS INTERNET CA'),),
(('commonName', 'TBS X509 CA SGC'),)),
'notAfter': 'Feb 17 23:59:59 2016 GMT',
'notBefore': 'Feb 11 00:00:00 2014 GMT',
'serialNumber': '1F94DEE8F046B340A6026500A4002CF8',
'subject': ((('countryName', 'FR'),),
(('postalCode', '14000'),),
(('stateOrProvinceName', 'Calvados'),),
(('localityName', 'CAEN'),),
(('streetAddress', '22 RUE DE BRETAGNE'),),
(('organizationName', 'TBS INTERNET'),),
(('organizationalUnitName', '0002 440443810'),),
(('organizationalUnitName', 'sha-256 production'),),
(('commonName', 'sha256.tbs-internet.com'),)),
'subjectAltName': (('DNS', 'sha256.tbs-internet.com'),
('DNS', 'www.sha256.tbs-internet.com')),
'version': 3}
ok
test_ciphers (test.test_ssl.NetworkedTests) ... ok
test_connect (test.test_ssl.NetworkedTests) ... ok
test_connect_cadata (test.test_ssl.NetworkedTests) ... ok
test_connect_capath (test.test_ssl.NetworkedTests) ... ok
test_connect_ex (test.test_ssl.NetworkedTests) ... ok
test_connect_ex_error (test.test_ssl.NetworkedTests) ... ok
test_connect_with_context (test.test_ssl.NetworkedTests) ... ERROR
/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/unittest/case.py:605: ResourceWarning: unclosed <ssl.SSLSocket fd=4, family=AddressFamily.AF_INET, type=2049, proto=0, laddr=('192.168.174.253', 37135), raddr=('82.94.164.164', 443)>
outcome.errors.clear()
test_context_setget (test.test_ssl.NetworkedTests) ... ok
test_get_ca_certs_capath (test.test_ssl.NetworkedTests) ... ok
test_get_server_certificate (test.test_ssl.NetworkedTests) ... [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)
Verified certificate for svn.python.org:443 is
-----BEGIN CERTIFICATE-----
MIIEzzCCAregAwIBAgIDDkGJMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jv
b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ
Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y
dEBjYWNlcnQub3JnMB4XDTEzMTIyNDIwMjgzMloXDTE1MTIyNDIwMjgzMlowGTEX
MBUGA1UEAxMOc3ZuLnB5dGhvbi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
ggEKAoIBAQDM6un3wTW9+HVJ7KC+/GwL0KAxehug0tw2YoSSX+TGxLyr9AUtBHQk
hCNWhRLewa0WMOY6hxIIQY1Hp6vreDiCbBehjVkEAydlKBzaAsgYCEbCC/ZaMzhv
aaFAiLVeaxAKJsBGUJNz5hGgzd67A6SGz+XK7qDWig4NR5eFrsr3DvjyEM7txMiG
gftGWLkadOuqUQsI20AykBGi+RxmrQIwqO2svGmje89DsWVILdP37PssM2zqRonh
4fUKooei3L43tXbTdHayXc9NtFS7q8T4eUlyWaD+BtP80QQOQFFvi+qZpme9bmYI
7YPX+e86lZtxAKM9nWrP93qc+2nS0MsHAgMBAAGjgb8wgbwwDAYDVR0TAQH/BAIw
ADAOBgNVHQ8BAf8EBAMCA6gwNAYDVR0lBC0wKwYIKwYBBQUHAwIGCCsGAQUFBwMB
BglghkgBhvhCBAEGCisGAQQBgjcKAwMwMwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUF
BzABhhdodHRwOi8vb2NzcC5jYWNlcnQub3JnLzAxBgNVHR8EKjAoMCagJKAihiBo
dHRwOi8vY3JsLmNhY2VydC5vcmcvcmV2b2tlLmNybDANBgkqhkiG9w0BAQUFAAOC
AgEAvq2TlM5voqqwlfbEIwdNM3RlqHattH/h2Pqkr5FV6nynhcNyP9wBJyS5mdlt
+tj1Fy6oV+iN0s8VglrwhsmYN2pbJkCJZcNgrhFTiOvZ3HJ0jxkQ8TaROfcH1RnZ
q45DcbSnryiIDBQNYxmUf/bE6Ce+48fiOJpTRtrC8iWfz4J/JHYZ5FVKx+SsC67o
E1iCT2/r1PSvzTg/bohL1kX6Aj3H3UqlXDuDybyHRrTn9kUwCgXK2h4x/qae6xjo
Gy++gtzg4XlJEAh65znJ2RlAYi3lvhCls+viR5vSIXBEXmBPFNonGnPtGRyx6Tii
5ncSUP+bp6aaRZb0qEi0k1R5XYPt5Hm7T/h4IOAKlx7gPMMLOXqbrlWpjgwhfysI
f/KkgGBq7nTsC6WeaW/QUQtdXqWULrK+nINY+s/CRX5UxdAWpqMxqgNkP3zef9yO
etgfpR+6NArjiLNcfJO2yGZTcXn1H2gewTcxwmc+QVWday9HcS3paMpot8BwWUpI
LzOLGTeNH+rQCUAKJHAiK3Ogee+hka4icIN7cKOIIVfZ/XBj1Ex7zjc3j72axNba
S1buqvrm12YCE5+xAjYwU/Nrl4HNFKCoPW7qfEaEuwp49pieAIOnXa82rCh/UdAv
dSj5JpEvxjTuZdVfbk2VUc/z2OeLzFlrQRJsOt1MisY0Aoc=
-----END CERTIFICATE-----
skipped "Resource 'ipv6.google.com' is not available"
test_makefile_close (test.test_ssl.NetworkedTests) ... ok
test_non_blocking_connect_ex (test.test_ssl.NetworkedTests) ... ok
test_non_blocking_handshake (test.test_ssl.NetworkedTests) ...
Needed 3 calls to do_handshake() to establish session.
ok
test_timeout_connect_ex (test.test_ssl.NetworkedTests) ... ok
test_asyncore_server (test.test_ssl.ThreadedTests)
Check the example asyncore integration. ...
server: new connection from 127.0.0.1:57771
client: sending b'FOO\n'...
server: read b'FOO\n' from client
client: read b'foo\n'
client: closing connection.
client: connection closed.
cleanup: stopping server.
cleanup: joining server thread.
server: read b'over\n' from client
server: closed connection <ssl.SSLSocket [closed] fd=-1, family=AddressFamily.AF_INET, type=2049, proto=0>
server: read b'' from client
cleanup: successfully joined.
ok
test_check_hostname (test.test_ssl.ThreadedTests) ...
server: new connection from ('127.0.0.1', 47566)
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
server: new connection from ('127.0.0.1', 47927)
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
ok
test_compression (test.test_ssl.ThreadedTests) ... server: new connection from ('127.0.0.1', 44281)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
got compression: None
ok
test_compression_disabled (test.test_ssl.ThreadedTests) ... server: new connection from ('127.0.0.1', 44325)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
ok
test_crl_check (test.test_ssl.ThreadedTests) ...
server: new connection from ('127.0.0.1', 42401)
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
server: new connection from ('127.0.0.1', 39995)
server: bad connection attempt from ('127.0.0.1', 39995):
Traceback (most recent call last):
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/test/test_ssl.py", line 1532, in wrap_conn
self.sock, server_side=True)
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 365, in wrap_socket
_context=self)
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 583, in __init__
self.do_handshake()
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 810, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:600)
server: new connection from ('127.0.0.1', 55142)
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
ok
test_default_ciphers (test.test_ssl.ThreadedTests) ... ok
test_default_ecdh_curve (test.test_ssl.ThreadedTests) ... server: new connection from ('127.0.0.1', 49676)
server: connection cipher is now ('ECDHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
ok
test_dh_params (test.test_ssl.ThreadedTests) ... server: new connection from ('127.0.0.1', 45312)
client: sending b'FOO\n'...
server: connection cipher is now ('DHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
ok
test_do_handshake_enotconn (test.test_ssl.ThreadedTests) ... ok
test_echo (test.test_ssl.ThreadedTests)
Basic test of an SSL client connecting to a server ...
server: new connection from ('127.0.0.1', 60169)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
server: new connection from ('127.0.0.1', 57455)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
server: new connection from ('127.0.0.1', 54910)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
server: selected protocol is now None
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: sending b'FOO\n'...
client: read b'foo\n'
client: closing connection.
server: new connection from ('127.0.0.1', 44655)
client: sending b'FOO\n'...
server: connection cipher is now ('ECDHE-RSA-AES256-SHA', 'TLSv1/SSLv3', 256)
======================================================================
ERROR: test_connect_with_context (test.test_ssl.NetworkedTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/test/test_ssl.py", line 1285, in test_connect_with_context
s.connect(("svn.python.org", 443))
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 846, in connect
self._real_connect(addr, False)
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 837, in _real_connect
self.do_handshake()
File "/home/a/Downloads/python3.4.3/Python-3.4.3/Lib/ssl.py", line 810, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:600)
----------------------------------------------------------------------
Ran 99 tests in 85.177s
FAILED (errors=1, skipped=5)
test test_ssl failed
make: *** [test] Error 1
它说
composer global require "laravel/installer=~1.1"
中间有一些代码,但我删除了它,因为它会超过身体限制。尽管如此,主要的是,1次测试失败,2次测试改变了执行环境,21次测试被跳过。
我知道为什么我会失败并跳过测试,即使我按照the Python downloads page上的确切步骤操作了?有没有更简单的方法在我的操作系统上安装Python3.4.3?
答案 0 :(得分:2)
从测试开始,Python已经构建好了。 "Python build finished successfully!"
缺少模块,因为您的计算机上没有安装相关软件。
这与使用apt-get没什么不同,例如你缺少_tkinter
这是因为你没有运行它所需的包。因此,如果您使用apt-get
,则必须使用apt-get install python-tk
,以便apt-get
引入相关的依赖关系。逻辑是如果你没有安装软件你不需要模块来编程它。
我可以通过make tests
看到的唯一问题是ssl
失败。
1 test failed:
test_ssl
向下看测试结果,你会看到: -
test_ssl: testing with 'OpenSSL 1.0.1f 6 Jan 2014' (1, 0, 1, 6, 15)
under Linux ('debian', 'jessie/sid', '')
HAS_SNI = True
OP_ALL = 0x-7ffffc01
OP_NO_TLSv1_1 = 0x10000000
此版本的OpenSSL包含去年发现的SSL协议漏洞,已在OpenSSL 1.0.1j [2014年10月15日]中修复。您可以找到此信息here。
我使用Fedora时并不是真的喜欢Ubuntu,但你可以试试: -
apt-get update
apt-get dist-upgrade
看看这是否修复了您的计算机所具有的SSL漏洞。
另一方面,如果您希望为您使用的系统之外的系统开发Python应用程序,则从源代码安装是唯一的方法。
从tar.gz
编译有很多充分的理由。
大多数Linux发行版都在内部使用Python,因此链接到一个版本。
您可以在导入的模块之间产生冲突。
您可以针对不同版本的python测试您的代码。
您不需要root权限设置自己的版本,因此您所做的事情与操作系统所需的任何内容无关。
所以对于这个例子,我的家是/home/paul
,我已经创建了我家的根目录。我将使用一个调用src
作为源目录,另一个调用opt
来保存我的Python版本。
诀窍是告诉Python安装的位置。因此,将tar.gz
文件放在src
目录中并展开它。打开终端并......
cd ~/src/Python-X.X.X
./configure --prefix=/home/paul/opt/python.x.x.x
make
make test <optional>
make install
请注意,我没有使用sudo
,因为我拥有主目录的权限,而且我对系统没有任何其他影响。
现在测试...
~/opt/python.3.4.2/bin/python3
Python 3.4.2 (default, Mar 28 2015, 19:36:24)
[GCC 4.9.2 20150212 (Red Hat 4.9.2-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
您可以继续添加测试版本,只需记住通过指向您要使用的版本来启动代码。
答案 1 :(得分:2)
此命令将引入必要的依赖项以从源代码构建python 3.4:
sudo apt-get build-dep python3.4
另外考虑通过pyenv安装以避免与操作系统产生冲突。您可以在此处找到安装说明:http://davebehnke.com/python-pyenv-ubuntu.html