Edw*_*ell 55 python importerror enthought
我在尝试zenlib
使用其setup.py
文件安装Python库时遇到了一个奇怪的问题.当我运行该setup.py
文件时,我收到导入错误,说
ImportError:没有名为Cython.Distutils`的模块
但我确实有这样一个模块,我可以在python命令行上导入它,没有任何麻烦.为什么我会收到此导入错误?
我认为问题可能与我使用Enthought Python Distribution这个事实有关,我事先安装了它,而不是使用Ubuntu 12.04附带的Python 2.7.
更多背景:这正是我在尝试运行setup.py时得到的:
enwe101@enwe101-PCL:~/zenlib/src$ sudo python setup.py install
Traceback (most recent call last):
File "setup.py", line 4, in <module>
from Cython.Distutils import build_ext
ImportError: No module named Cython.Distutils
Run Code Online (Sandbox Code Playgroud)
但它可以从命令行工作:
>>> from Cython.Distutils import build_ext
>>>
>>> from fake.package import noexist
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named fake.package
Run Code Online (Sandbox Code Playgroud)
请注意第一个导入工作,第二个导致错误.将其与setup.py的前几行进行比较:
#from distutils.core import setup
from setuptools import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext
import os.path
Run Code Online (Sandbox Code Playgroud)
我确保Enthought Python Distribution而不是Ubuntu附带的python是默认运行的,通过编辑预先添加我的bash $ PATH环境变量~/.bashrc
,将其添加为最后一行:
export PATH=/usr/local/epd/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
果然which python
吐出来/usr/local/epd/bin/python
......不知道什么尝试,我走进我的网站packages目录,( /usr/local/epd/lib/python2.7/site-packages
)和充分的权限(R,W,X)来Cython
,Distutils
,build_ext.py
,和__init__.py
文件.尝试可能很傻,但它什么都没改变.
想不出接下来会尝试什么!?有任何想法吗?
Mar*_*oma 74
安装Cython:
pip install cython
Run Code Online (Sandbox Code Playgroud)
tia*_*ago 18
你的sudo没有得到正确的python.这是Ubuntu中sudo的已知行为.有关详细信息,请参阅此问题.您需要确保sudo通过使用完整路径调用正确的python:
sudo /usr/local/epd/bin/python setup.py install
Run Code Online (Sandbox Code Playgroud)
或者通过执行以下操作(在bash中):
alias sudo='sudo env PATH=$PATH'
sudo python setup.py install
Run Code Online (Sandbox Code Playgroud)
跑
which python
这是你的系统默认的python的路径然后转到@ tiago的方法:
sudo <output of which python> setup.py install
小智 6
用于python3使用
sudo apt-get install cython3
Run Code Online (Sandbox Code Playgroud)
用于python2使用
sudo apt-get install cython
Run Code Online (Sandbox Code Playgroud)
细节可以在这里阅读
归档时间: |
|
查看次数: |
66795 次 |
最近记录: |