Not able to pip install pickle in python 3.6
Asked Answered
R

7

51

I am trying to run the following code:

import bs4 as bs
import pickle
import requests
import lxml

def save_sp500_tickers():
    resp = requests.get("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies")
    soup = bs.BeautifulSoup(resp.text, "html5lib")
    table = soup.find("table", { "class" : "wikitable sortable"}) 
    # print(soup)
    # print(soup.table)

    tickers = []
    for row in table.findAll("tr")[1:]:
        ticker = row.findAll("td")[0].text
        tickers.append(ticker)
    with open("sp500tickers.pickle","wb") as f:
        pickle.dump(tickers, f)
    print(tickers)
#   return tickers
# save_sp500_tickers()

It does not throw any error but I realized the pickle module is not installed. I tried to install it via pip and got the following error:-

D:\py_fin>pip install pickle
Collecting pickle
  Could not find a version that satisfies the requirement pickle (from versions:
 )
No matching distribution found for pickle

How do we install pickle in python 3.6 (32-bit)?

Rodl answered 27/1, 2018 at 16:35 Comment(4)
Isn't it included in the standard library? What makes you think you don't have it?Keeney
Pickle is in standard library. How do you find it is not installed?Leasia
@satyaki: As a token of appreciation for helpful solution please accept one of the answers.Castellany
I am trying the same code but my print output is [u'MMM] idk what that meansDubious
C
58

pickle module is part of the standard library in Python for a very long time now so there is no need to install it via pip. I wonder if you IDE or command line is not messed up somehow so that it does not find python installation path. Please check if your %PATH% contains a path to python (e.g. C:\Python36\ or something similar) or if your IDE correctly detects root path where Python is installed.

Castellany answered 27/1, 2018 at 16:39 Comment(0)
I
43

You can pip install pickle by running command pip install pickle-mixin. Proceed to import it using import pickle. This can be then used normally.

Inartificial answered 19/12, 2018 at 11:12 Comment(1)
Thanks. This solution worked for me.Other solutions did not work.Guaiacol
R
17

Pickle is a module installed for both Python 2 and Python 3 by default. See the standard library for 3.6.4 and 2.7.

Also to prove what I am saying is correct try running this script:

import pickle
print(pickle.__doc__)

This will print out the Pickle documentation showing you all the functions (and a bit more) it provides.

Or you can start the integrated Python 3.6 Module Docs and check there.

As a rule of thumb: if you can import the module without an error being produced then it is installed

The reason for the No matching distribution found for pickle is because libraries for included packages are not available via pip because you already have them (I found this out yesterday when I tried to install an integrated package).

If it's running without errors but it doesn't work as expected I would think that you made a mistake somewhere (perhaps quickly check the functions you are using in the docs). Python is very informative with it's errors so we generally know if something is wrong.

Rialto answered 27/1, 2018 at 17:21 Comment(0)
U
7
import pickle

intArray = [i for i in range(1,100)]
output = open('data.pkl', 'wb')
pickle.dump(intArray, output)
output.close()

Test your pickle quickly. pickle is a part of standard python library and available by default.

Unexpected answered 27/1, 2018 at 16:40 Comment(0)
E
7

I had a similar error & this is what I found.

My environment details were as below: steps followed at my end

c:\>pip --version
pip 20.0.2 from c:\python37_64\lib\site-packages\pip (python 3.7)

C:\>python --version
Python 3.7.6

As per the documentation, apparently, python 3.7 already has the pickle package. So it does not require any additional download. I checked with the following command to make sure & it worked.

C:\Python\Experiements>python
Python 3.7.6 (tags/v3.7.6:43364a7ae0, Dec 19 2019, 00:42:30) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pickle
>>>

So, pip install pickle not required for python v3.7 for sure

Enthusiast answered 29/2, 2020 at 16:3 Comment(2)
That's a good way to confirm pickle is installed but did this solve the error that you had?Den
it did solve my problem because I was successfully able to execute my program and it had created two .pkl files as expected.Enthusiast
S
4
$ pip install pickle5
import pickle5 as pickle

pb = pickle.PickleBuffer(b"foo")
data = pickle.dumps(pb, protocol=5)
assert pickle.loads(data) == b"foo"

This package backports all features and APIs added in the pickle module in Python 3.8.3, including the PEP 574 additions. It should work with Python 3.5, 3.6 and 3.7.

Basic usage is similar to the pickle module, except that the module to be imported is pickle5:

https://pypi.org/project/pickle5/

Smutty answered 24/11, 2020 at 16:56 Comment(0)
M
3

$ pip install pickle-mixin

try running this command in anaconda prompt or pycharm terminal

Massotherapy answered 6/3, 2022 at 9:18 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.