我在 Virtual Studio Code 中导入 TensorFlow 时遇到问题。我尝试执行我的代码,该代码从导入不同的模块开始。其中一行正在导入 Tensorflow:
import tensorflow as tf
这给了我错误:
不可散列的类型:“列表” 文件“Link”,第 10 行,位于 导入tensorflow as tf TypeError:不可散列类型:'list'
首先,我使用 Jupyter Notebook 在另一台计算机上编写了此代码,我可以毫无问题地执行它。在我想要执行它的计算机上遇到此错误后,我尝试重现该错误。我在第一台计算机上安装了 Virtual Studio Code,安装了所有模块并成功执行。好像是设置什么的问题。
为了测试我只执行了这个,这给了我错误:
import tensorflow as tf
在两台计算机上我都有 Python 3.9.0 和 Tensorflow 2.16.1。经过多次尝试(例如卸载并安装tensorflow,或重置Virtual Studio Code),我决定在这里询问。也许这里有人更了解这个问题:)
欢迎来到 Python 依赖管理地狱。
我不确定您的问题有任何简单或简短的答案。您遇到的问题是任何 Pythonista 之旅中非常常见的问题。
您在一台计算机上使用的库似乎彼此一致,而在另一台计算机上则不然(一个库在导入过程中抱怨另一个库是依赖问题的一个好迹象)。并且不可能确保它们在单一环境中的所有情况下都正常。
我们在 Python 社区中通常解决这个问题的方法是使用依赖管理器。
这里是关于依赖管理以及为什么需要它的Real Python文章。这是一篇很长的文章,但非常值得。
祝你好运!
Google 声称 Tensorflow 可与 python 3.9 配合使用,但实际上并未验证这一点。 tensorflow中使用的类型注释与python 3.9不兼容。我已经验证,当 python 升级到 3.11 并且在新的虚拟环境中安装tensorflow 时,这个错误就会消失