我正在尝试在同一虚拟环境中安装crypto
和pycrypto
。
[root@jnkslave01 tmp]# virtualenv test_pycrypto
New python executable in /root/tmp/test_pycrypto/bin/python
Installing setuptools, pip, wheel...done.
[root@jnkslave01 tmp]# source test_pycrypto/bin/activate
(test_pycrypto) [root@jnkslave01 tmp]# pip install crypto==1.4.1 pycrypto==2.6.1
Collecting crypto==1.4.1
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Downloading https://pypi.storage.rackspace.com/packages/crypto-1.4.1-py2.py3-none-any.whl
Collecting pycrypto==2.6.1
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
/root/tmp/test_pycrypto/lib/python2.6/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Requirement already satisfied: Naked in ./test_pycrypto/lib/python2.6/site-packages (from crypto==1.4.1)
Requirement already satisfied: shellescape in ./test_pycrypto/lib/python2.6/site-packages (from crypto==1.4.1)
Requirement already satisfied: requests in ./test_pycrypto/lib/python2.6/site-packages (from Naked->crypto==1.4.1)
Requirement already satisfied: pyyaml in ./test_pycrypto/lib/python2.6/site-packages (from Naked->crypto==1.4.1)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in ./test_pycrypto/lib/python2.6/site-packages (from requests->Naked->crypto==1.4.1)
Requirement already satisfied: certifi>=2017.4.17 in ./test_pycrypto/lib/python2.6/site-packages (from requests->Naked->crypto==1.4.1)
Requirement already satisfied: urllib3<1.23,>=1.21.1 in ./test_pycrypto/lib/python2.6/site-packages (from requests->Naked->crypto==1.4.1)
Requirement already satisfied: idna<2.7,>=2.5 in ./test_pycrypto/lib/python2.6/site-packages (from requests->Naked->crypto==1.4.1)
Installing collected packages: crypto, pycrypto
Successfully installed crypto-1.4.1 pycrypto-2.6.1
(test_pycrypto) [root@jnkslave01 tmp]# python -c "from Crypto import Random"
(test_pycrypto) [root@jnkslave01 tmp]#
(test_pycrypto) [root@jnkslave01 tmp]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m
它在CentOS 6.9
中正常工作,但是当我尝试在我的Mac上执行此操作时。它给出了错误。
(test_pycrypto) ABCDEFG:~ myuser$ python -c "from Crypto import Random"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named Crypto
当我检查时,我在Mac
Crypto
crypto
目录site-packages
中找到了这两个设置之间有什么区别1>
在Mac上
(test_pycrypto) ABCDEFG:~ myuser$ ls test_pycrypto/lib/python2.6/site-packages/crypto/
Cipher PublicKey Signature __init__.pyc decryptoapp.py pct_warnings.py settings.pyc
Hash Random Util app.py decryptoapp.pyc pct_warnings.pyc
Protocol SelfTest __init__.py app.pyc library settings.py
(test_pycrypto) ABCDEFG:~ myuser$ ls test_pycrypto/lib/python2.6/site-packages/Crypto/
Cipher PublicKey Signature __init__.pyc decryptoapp.py pct_warnings.py settings.pyc
Hash Random Util app.py decryptoapp.pyc pct_warnings.pyc
Protocol SelfTest __init__.py app.pyc library settings.py
在Mac上,它以某种方式组合两个包并在两个目录中放置相同的内容,而在CentOS
上它具有不同内容的目录。
在CentOS上
(test_pycrypto) [root@jnkslave01 tmp]# ls test_pycrypto/lib/python2.6/site-packages/crypto
app.py app.pyc decryptoapp.py decryptoapp.pyc __init__.py __init__.pyc library settings.py settings.pyc
(test_pycrypto) [root@jnkslave01 tmp]# ls test_pycrypto/lib/python2.6/site-packages/Crypto/
Cipher Hash __init__.py __init__.pyc pct_warnings.py pct_warnings.pyc Protocol PublicKey Random SelfTest Signature Util
我在两个设置上都运行了相同的命令,也尝试使用Python 3
,它有同样的问题。
我在Mac上做错了什么导致了这个问题?
答案 0 :(得分:1)
Mac OS X的文件系统不区分大小写,不区分Crypto
和crypto
。您无法将两者安装到同一虚拟环境中。将它们分开。