【发布时间】:2019-10-30 23:43:28
【问题描述】:
我正在尝试使用 spyder 在 python 3.7 中运行以下代码
import numpy as np
import freud
from util import box_2d_to_points
import matplotlib.pyplot as plt
data_path = "data/phi065"
box_data = np.load("{}/box_data.npy".format(data_path))
pos_data = np.load("{}/pos_data.npy".format(data_path))
def plot_rdf(box_arr, points_arr, prop, rmax=10, dr=0.1, label=None, ax=None):
"""Helper function for plotting RDFs."""
if ax is None:
fig, ax = plt.subplots(1, 1, figsize=(12, 8))
ax.set_title(prop, fontsize=16)
rdf = freud.density.RDF(rmax, dr)
for box, points in zip(box_arr, points_arr):
rdf.accumulate(box, points)
if label is not None:
ax.plot(rdf.R, getattr(rdf, prop), label=label)
ax.legend()
else:
ax.plot(rdf.R, getattr(rdf, prop))
return ax
首先安装了一个名为“freud”的包(pip install freud)
然后当我运行时出现此错误,
ImportError: cannot import name 'box_2d_to_points' from 'util' (/opt/anaconda3/lib/python3.7/site-packages/util/__init__.cpython-37m-darwin.so)
所以我检查了是否使用
安装了包pip show util
我得到了这个:警告:找不到包:util 注意:您可能需要重新启动内核才能使用更新的软件包。
是的,我确实重新启动了内核,没有任何改变。
当我尝试安装它时
pip install util
错误:找不到满足 util 要求的版本(来自版本:无) 错误:未找到 util 的匹配分布 注意:您可能需要重新启动内核才能使用更新的软件包。
我在网上搜索,发现它可以安装为pip install python-utils,但是它会创建一个不同的目录,即使我更改为from python_utils import box_2d_to_points,代码也不会编译。
但我认为无法读取包是一些目录问题。如果您查看随附的屏幕截图,在文件夹“freud”的库中,有一个文件夹“util”,其中包含文件“init.cpython-37m-darwin.so” 我想知道如何安装这个包。我按照(Install a Python package into a different directory using pip?) 中的解决方案,但仍然没有解决问题。
弗洛伊德包的文档可以在here找到:
and here is a screen shot of directories
提前谢谢你,
【问题讨论】:
-
以后,如果您正在使用示例代码,请确保明确说明这一点并将用户指向该代码。在这种情况下,您似乎正在使用these demos from freud-examples 中的代码工作。这些已存档,并不意味着支持。
util.py只是 Jupyter 笔记本加载的本地代码 - 不是模块。 -
另外,如果你有 Anaconda,除非绝对必要,否则最好不要使用 Pip,也不要在 base 环境中使用它(参见“Using Pip in a Conda Environment”)。在这种情况下,
conda install -c conda-forge freud在文档中明确说明,因此这是首选的安装命令。 -
感谢您的反馈,我应该提到我使用
conda install -c conda-forge freud安装的,,,,,它没有加载或识别 util,我在文档中找不到如何使用 conda 安装 util ,这就是为什么我使用 pip install 代替,它仍然不起作用 -
我明白了。是的,重点是,
util并不是一个真正的东西,它只是一个在一些旧示例中使用的文件。您可以下载该文件并将其放在您要编写的代码旁边,但我认为最好还是坚持使用较新的文档。
标签: python python-3.x pip conda importerror