我刚刚通过MacPorts安装了py27-numpy软件包,当我使用此命令时,python将无法找到该模块:import scipy
我使用了help('modules')
命令,而scipy端口没有出现。
显然路径配置不正确或MacPorts没有安装在正确的位置,但不管怎样,它可以解决我的问题,知道这个软件包的安装位置。
我在哪里可以找到MacPorts安装包的路径,py27-scipy?
echo $PATH
命令的输出:
/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr / local / bin中:在/ usr / X11 / bin中:目录/ bin中
我无法在任何这些地方找到包裹。
感谢您的帮助。
答案 0 :(得分:13)
答案 1 :(得分:13)
你的PATH不正确。它似乎正在挑选另一个Python 2.7,可能是使用python.org或其他地方的二进制安装程序安装的,而不是MacPorts安装的。尝试从PATH中删除/Library/Frameworks/Python.framework/Versions/2.7/bin
或直接调用MacPorts Python:
/opt/local/bin/python2.7
答案 2 :(得分:3)
MacPorts 应在/opt/local/Library/Frameworks/Python.framework/2.7/site-packages
中安装 Python 包。因此,请务必在$PYTHONPATH
文件中设置.profile
环境变量:
export PYTHONPATH="/opt/local/Library/Frameworks/Python.framework/Versions/2.7/site-packages"
答案 3 :(得分:1)
sudo port select --set python python27
是安装port的python系统范围的最佳答案
答案 4 :(得分:0)
Homebrew只使用最新的Mac系统版本,MacPorts用于其他版本,我很困惑,直到找到python locations differ depending on the installer。
以下是一个自以为是的提示:将virtualenv用于您的项目,并且不要使用MacPorts更改默认版本。我不会想要记住在某事物中间更新我的python所以我依靠virtualenvs。在计算机上选择并找到python版本,然后unifdef
。
答案 5 :(得分:0)
我检查了python版本
python --version
Python 3.8.5
和位置:
which python
/opt/local/bin/python
然后尝试:
sudo port contents python38
其中列出了7285行:
Port python38 contains:
/Applications/MacPorts/Python 3.8/IDLE.app/Contents/Info.plist
/Applications/MacPorts/Python 3.8/IDLE.app/Contents/MacOS/IDLE
/Applications/MacPorts/Python 3.8/IDLE.app/Contents/MacOS/Python
/Applications/MacPorts/Python 3.8/IDLE.app/Contents/PkgInfo
...
/opt/local/share/man/man1/python3.8.1
将其与fardjad's answer结合会导致:
sudo port contents python38 | grep site-packages
输出:
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/README.txt
因为我们需要将命令修改为以下目录:
dirname $(sudo port contents python38 | grep site-packages)
提供所需的目录:
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages
因此有可能以单线结尾:
macports中的单行PYTHONPATH设置:
export PYTHONPATH=$(dirname $(sudo port contents python38 | grep site-packages))
我们可以检查结果:
echo $PYTHONPATH
/opt/local/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages
作为参考,请参阅用于设置PATH的Eclipse Liclipse python IDE对话框的外观-对于完全指定的PYTHONPATH,您可能还想包含更多目录。