Python 试图理解蟒蛇
我正在努力理解与我的项目相关的Python 试图理解蟒蛇,python,python-2.7,Python,Python 2.7,我正在努力理解与我的项目相关的PYTHONPATH 我的项目位于目录$HOME/Programs/medusa-2.0,我的源文件位于$HOME/Programs/medusa-2.0/medusa 我在.bashrc中设置了PYTHONPATH,如下所示: export MEDUSA_HOME=$HOME/Programs/medusa-2.0 export PYTHONPATH=${MEDUSA_HOME}/medusa:${PYTHONPATH} 当我试图从system import e
PYTHONPATH
我的项目位于目录$HOME/Programs/medusa-2.0
,我的源文件位于$HOME/Programs/medusa-2.0/medusa
我在.bashrc
中设置了PYTHONPATH,如下所示:
export MEDUSA_HOME=$HOME/Programs/medusa-2.0
export PYTHONPATH=${MEDUSA_HOME}/medusa:${PYTHONPATH}
当我试图从system import error\u handler,hello导入一个类时,我收到的错误是它找不到函数execute\u命令
。我不明白为什么会出现这个错误?是否因为execute_command
位于medusasettings
中,所以我在导入中执行循环
ImportError Traceback (most recent call last)
<ipython-input-2-7f959e81c735> in <module>()
----> 1 from medusasystem import error_handler, hello
/home/ubuntu/Programs/medusa-2.0/medusa/medusasystem.py in <module>()
9 from local import lcat
10 import psutil
---> 11 import ranking
12 import settings
13 import simplejson as json
/home/ubuntu/Programs/medusa-2.0/medusa/ranking.py in <module>()
7 import cache
8 from decors import make_verbose
----> 9 from scheduler.predictionranking import get_prediction_metrics
10 from scheduler.randomranking import get_random_metrics
11 from settings import medusa_settings
/home/ubuntu/Programs/medusa-2.0/medusa/scheduler/predictionranking.py in <module>()
6
7 from celery import task
----> 8 import hdfs
9 from networkdaemon import read_network_data
10 from numpylinearregression import estimate_job_execution, calculate_linear_regression_numpy
/home/ubuntu/Programs/medusa-2.0/medusa/hdfs.py in <module>()
4 from hadoopy._hdfs import _checked_hadoop_fs_command
5 from celery import task
----> 6 from medusasystem import execute_command
7 import settings
8
ImportError: cannot import name execute_command
和来自medusa系统导入执行_命令的。验证execute_命令是否在MEDUSA系统中
该问题与循环进口问题有关。我替换了:
from medusasystem import execute_command
与
如果在启动Python时使用
-v
erbose标志,它将解释很多关于重要性的问题。在我的情况下,它没有解释太多。您可以查看我在原始帖子中添加的内容。错误部分不是您应该查看的内容-查看所有经过的消息。您将看到它从何处匹配文件。您是否在路径中的任何位置编写了名为medusasystem.py
或.pyc
的模块?首先,除了我得到的错误,所有日志似乎都正常。第二,我不理解你关于.py
或pyc
的问题。我已经编写了py
文件,是python引擎(我不知道名称)将文件转换成pyc
。日志将告诉您它从哪里导入medusasystem
。大概是在/home/ubuntu/Programs/medusa-2.0/medusa/medusa.py
中。但可能不是这样。如果您创建了medusasystem.py
或者它存在于sys.path
上的任何其他地方,那么它可能不是美杜莎所期望的。无论哪种方式,您都可以转到该文件并检查该特定文件中是否有execute\u命令
函数。
from medusasystem import execute_command
import medusasystem
execute_command = medusasystem.execute_command