无法在python 3.6中安装pickle

时间:2018-01-27 16:35:45

标签: python pickle

我正在尝试运行以下代码: -

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()

它没有抛出任何错误,但我意识到没有安装pickle模块。 我通过pip安装它并得到以下错误: -

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

我尝试了google'd,但没有得到解决方案。请帮忙。 我们如何在python 3.6(32位)中安装pickle

8 个答案:

答案 0 :(得分:13)

pickle module是Python中标准库的一部分,现在很长时间没有必要通过%PATH%安装它。我想知道你的IDE或命令行是不是以某种方式混乱,以便它找不到python安装路径。请检查您的C:\Python36\是否包含python的路径(例如newattr.c_lflag &= ~(ICANON|ECHO); 或类似的东西),或者您的IDE是否正确检测到安装了Python的根路径。

答案 1 :(得分:6)

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.

答案 2 :(得分:5)

import pickle

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

快速测试你的泡菜。 pickle是标准python库的一部分,默认情况下可用。

答案 3 :(得分:3)

Pickle是默认为Python 2和Python 3安装的模块。查看3.6.42.7的标准库。

另外要证明我说的是正确的尝试运行此脚本:

import pickle
print(pickle.__doc__)

这将打印出Pickle文档,显示它提供的所有功能(以及更多功能)。

或者您可以启动集成的Python 3.6模块文档并在那里查看。

根据经验:如果您可以导入模块而不会产生错误,那么就会安装

No matching distribution found for pickle的原因是因为包含的包的库不能通过pip获得,因为你已经拥有它们(我昨天在试图安装集成包时发现了这一点)。

如果它运行没有错误但它没有按预期工作,我会认为你在某处犯了错误(也许快速检查你在文档中使用的功能)。 Python对它的错误非常有用,因此我们通常知道是否有错误。

答案 4 :(得分:3)

您是否碰巧将文件命名为pickle.py?这将覆盖pickle lib ...

答案 5 :(得分:3)

我有类似的错误,这就是我发现的。

我的环境详细信息如下:最后执行的步骤

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

根据文档,显然,python 3.7已经具有pickle软件包。因此,它不需要任何其他下载。我使用以下命令进行检查以确保&正常。

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
>>>

因此,肯定不需要python v3.7的pip install pickle

答案 6 :(得分:0)

$ pip install pickle5
import pickle5 as pickle

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

此软件包向后移植了Python 3.8.3中的pickle模块中添加的所有功能和API,包括PEP 574的新增功能。它应可与Python 3.5、3.6和3.7一起使用。

基本用法类似于pickle模块,除了要导入的模块是pickle5:

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

答案 7 :(得分:-1)

尝试在anaconda环境中使用pip或pip install pickle使用conda install pickle