一直在尝试使用pyenv在mac上安装python 3.8.5,如Matthew Broberg所述
$ brew install pyenv && pyenv install 3.8.5
.zshrc
# Python
# https://opensource.com/article/19/5/python-3-default-mac#what-we-should-do
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi
# Pip - https://gist.github.com/haircut/14705555d58432a5f01f9188006a04ed
PATH="$PATH:~/Library/Python/2.7/bin"
PATH="$PATH:~/Library/Python/3.8.5/bin"
做
$ python --version
Python 3.8.5
但是运行像这样的脚本
$ python utils/search.py 'something' 'somewhere'
Traceback (most recent call last):
__file__=utils/search.py | __name__=__main__ | __package__=None
File "utils/search.py", line 9, in <module>
import utils.constants as CONSTANTS
ModuleNotFoundError: No module named 'utils'
通过brew uninstall pyenv && rm -Rf ~/.pyenv
删除pyenv并完全重新启动终端(寻源.zshrc
似乎还不够)
$ python --version
Python 2.7.16
$ python3 --version
Python 3.8.5
$ python3 utils/search.py 'something' 'somewhere'
Found what you are looking for. It's working!
$
这是相同的python版本,但我在其中一个版本中遇到导入错误-这有什么意义
更重要的是:我是否可以修复它,使python 3成为终端python
的默认值,而不必使用python3
顺便说一句:别名python
到python3
不是一个选项-尝试过它后,回想起来它失败了
看来你没有正确描述你的问题。与
pyenv
无关,但与导入另一个包的方式有关关于
import
如何在Python中工作的说明:Python Not Finding ModulePython依赖于
sys.path
来导入包。它在sys.path
中搜索路径并尝试找到所需的包在我的理解中,当您调用
python utils/search.py
时,$PWD/utils
被添加到sys.path
而不是$PWD
。无法获取命令工作,因为模块utils
未包含在$PWD/utils
中,而$PWD
中解决方案:
touch utils/__init__.py
并调用python -m utils.search 'something' 'somewhere'
相关问题 更多 >
编程相关推荐