[pycrypto] pycryptodome
Dave Pawson
dave.pawson at gmail.com
Fri Dec 9 10:34:27 UTC 2016
This is getting messy!
Comments inline
On 8 December 2016 at 20:29, Martin Falatic <martin at falatic.com> wrote:
> This is beyond the scope of pycrypto for the moment - you have system
> problems because you've upgraded pip yourself.
>
> This looks familiar because I did the same exact thing myself in the
> process of testing this (and it didn't go smoothly - same problem you're
> having - so I rolled that back to get pip2 and pip3 working properly).
> Let's get you back on track.
>
> # At this point let's get back to the system default pips and go from
> there. IF you upgraded the system pip to 9.0.1 as it appears, here's how
> to fix them:
>
> sudo dnf reinstall python-pip python3-pip
OK
>
> # Now, with that done, run these:
> sudo pip3.5 uninstall pycrypto
produces
# pip3.5 uninstall pycrypto
DEPRECATION: Uninstalling a distutils installed project (pycrypto) has
been deprecated and will be removed in a future version. This is due
to the fact that uninstalling a distutils project will only partially
uninstall the project.
Uninstalling pycrypto-2.6.1:
/usr/lib64/python3.5/site-packages/pycrypto-2.6.1-py3.5.egg-info
Proceed (y/n)?
"distutils installed project" - will only partially uninstall the project?
Unclear just what that means.
Accept y and get a pip warning!
Proceed (y/n)? y
Successfully uninstalled pycrypto-2.6.1
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Ignored the message
> sudo pip2.7 uninstall pycrypto
Ah! A difference.
#pip2.7 uninstall pycrypto
Cannot uninstall requirement pycrypto, not installed
You are using pip version 8.1.2, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
It would seem that pycrypto (installed using python setup.py install) is
"associated" with python 2.7 (guess)
Either way it is uninstalled.
https://ofswiki.org/wiki/Uninstalling_setup.py_install
>
> # Once that's done, list them as per my earlier email:
> pip3.5 list | grep pycrypt
> pip2.7 list | grep pycrypt
Nothing from pip3.5
however
# pip2.7 list | grep pycrypt
pycryptodomex (3.4.3)
so that is there.
>
> Shouldn't see `pycrypto` there now. If you do... you installed it some
> other way (perhaps as a dnf package?) Uninstall it via the same mechanism
> you installed it and try again.
Which I did yesterday, using the suggestion from a link
https://ofswiki.org/wiki/Uninstalling_setup.py_install
>
> Now go through the steps in my previous email to install pycryptodome and
> pycryptodomex for the purpose of this test, and report the results.
Both? IFAICT the suggestion is one or the other, both not needed?
Aside, I am not 'out of date' with pip
# pip3.5 -V
pip 8.1.2 from /usr/lib/python3.5/site-packages (python 3.5)
# pip2.7 -V
pip 8.1.2 from /usr/lib/python2.7/site-packages (python 2.7)
OK, to repeat the tests from the pycryptodome pages.
# python3 -m Cryptodome.SelfTest
/usr/bin/python3: Error while finding spec for 'Cryptodome.SelfTest'
(ImportError: No module named 'Cryptodome')
Yet...
# python -m Cryptodome.SelfTest
and off it goes!
Ran 22656 tests in 48.420s
Implication that Cryptodome is in the 2.7 library?
More testing.
import Crypto.Cipher.AES
mods=sys.modules
if "Crypto" in mods:
print("Found Crypto")
print(mods["Crypto"])
print(dir(Crypto))
print(dir(Crypto.Cipher))
print("\nCrypto.Cipher.AES: ",dir(Crypto.Cipher.AES))
shows
<module 'Crypto' from '/usr/lib64/python3.5/site-packages/Crypto/__init__.py'>
['Cipher', 'Util', '__all__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__',
'__revision__', '__spec__', '__version__', 'version_info']
['AES', '_AES', '__all__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__path__',
'__revision__', '__spec__', 'blockalgo']
Crypto.Cipher.AES: ['AESCipher', 'MODE_CBC', 'MODE_CFB', 'MODE_CTR',
'MODE_ECB', 'MODE_OFB', 'MODE_OPENPGP', 'MODE_PGP', '_AES',
'__builtins__', '__cached__', '__doc__', '__file__', '__loader__',
'__name__', '__package__', '__revision__', '__spec__', 'block_size',
'blockalgo', 'key_size', 'new']
So how to tell whether I have crypto (??) or pycryptodome[x] ?
Signed, confused.com <grin/>
--
Dave Pawson
XSLT XSL-FO FAQ.
Docbook FAQ.
http://www.dpawson.co.uk
More information about the pycrypto
mailing list