run python file in terminal_从终端导入python文件(Import python file from terminal)

谷梁星雨
2023-12-01

从终端导入python文件(Import python file from terminal)

我试图从我的终端运行一个python文件。 因此,当我运行它时,我得到以下错误:

Traceback (most recent call last):

File "evaluate_classifier.py", line 1, in

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

ImportError: No module named alarm_detection.classifier_selection.classifier_evaluation

在我的文件中,我使用此代码:

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

如何从终端导入python文件classifier_evaluation(它位于不同的目录中)

谢谢。

I am trying to run a python file from my terminal. So when I run it I get the error below:

Traceback (most recent call last):

File "evaluate_classifier.py", line 1, in

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

ImportError: No module named alarm_detection.classifier_selection.classifier_evaluation

In my file I use this code:

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

How can I import the python file classifier_evaluation from terminal (it is in a different directory)

Thanks.

原文:https://stackoverflow.com/questions/40765516

2019-12-08 07:12

满意答案

似乎alarm_detection包所在的目录不在你的python路径中。 您只能从sys.path包含的目录导入包和模块。 path中包含的默认目录是当前目录(运行脚本的位置)和主python目录,其中包含所有已安装的软件包(如numpy,os,math等)。

您可以(暂时)修改python路径。 如果您的包alarm_detection包含在目录/full/path/dir/那么您可以从那里导入它,如下所示:

import sys

# Adds the other directory to your python path.

sys.path.append("full/path/dir")

#Now this should work

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

你需要每次都这样做,但是当你关闭python会话时它不会保持添加。

或者,您可以将该软件包移动到您正在使用它的同一目录中。我假设在所有这些中, alarm_detection是您创建的软件包,而不是由pip或anaconda或其他东西下载的。

It seems the directory that the alarm_detection package is in, isn't in your python path. You can only import packages and modules from directories contained in your sys.path. The default directories contained in path are the current directory (where you ran the script from) and the main python directory where all your installed packages (like numpy, os, math etc...) are in.

You can (temporarily) modify the python path. If your package alarm_detection is contained in the directory /full/path/dir/ then you can import it from there like so:

import sys

# Adds the other directory to your python path.

sys.path.append("full/path/dir")

#Now this should work

import alarm_detection.classifier_selection.classifier_evaluation as clf_eval

You need to do this every time however, it doesn't stay added when you close that session of python.

Or, you can just move that package into the same directory you're using it in. I'm assuming in all this that alarm_detection is a package you created and wasn't downloaded by pip or anaconda or something.

2016-11-23

相关问答

该错误意味着您的Python路径上没有'intelhex'。 / usr / local / bin的内容无关紧要(那些是可执行文件,但不是Python模块)。 您确定安装了软件包并从安装它的相同Python站点软件包位置加载它吗? That error means that there is no 'intelhex' on your Python path. The contents of /usr/local/bin should not matter (those are executab...

首先,您可以检查os.system的返回值。 非零返回值通常表示发生了错误。 看起来您正在尝试使用命令中的参数。 在这种情况下,它应该看起来像: def Terminal(inputfile, NumParts):

command = 'gpmetis ' + inputfile + ' ' + str(NumParts)

os.system(command)

outputfile = intputfile + '.part.' + str(NumParts)

...

在我的机器上,以下操作无效,因为反斜杠未被解释。 他们指出了特殊的字符。 import os

os.system('C:\bin\Tcl\bin\tclsh.exe')

您可以在字符串前添加r import os

os.system(r'C:\bin\Tcl\bin\tclsh.exe')

或使用加倍的后退 import os

os.system('C:\\bin\\Tcl\\bin\\tclsh.exe')

On my machine the following doesn't work,...

你可以把它包装到一个函数中: >>> def fprint(output):

... print output

... with open("somefile.txt", "a") as f:

... f.write("{}\n".format(output))

如果这是记录信息,则应该查看记录模块 。 使用日志记录模块,您可以轻松配置和控制记录事件的多个目标。 日志记录本的例子: import logging

# set up logging to file - s...

在IDLE中加载和运行脚本时,会自动为解释器加载它们。 这意味着只要在IDLE中运行脚本,Python shell就已经定义了这些类型。 如果要从IDLE外部运行它,即不先运行模块,则需要从该模块导入Robot。 为此,您导入模块,而不是类型: import Robot

myRobot = Robot.Robot(...)

或者,如果要直接使用Robot ,则需要使用from ... import语法: from Robot import Robot

myRobot = Robot(...)

...

您可以添加一行 temp.seek(0,0)

之前 for line in temp:

print line

temp.read()

因此,再次将指针设置为文件的开头。 有关seek()更多信息,请参阅https://stackoverflow.com/a/11696554/1686094 You can add a line temp.seek(0,0)

before for line in temp:

print line

temp.read()

Thus set th...

事实证明,我需要在TextEdit中禁用智能引号。 It turned out that I needed to disable smart quotes in TextEdit.

好吧,如果你想运行一个python脚本,你必须运行一个命令。 一个运行脚本的命令,即。 你可以使用subprocess.call : import subprocess

subprocess.call(["python", "userscript.py"])

或者不太优选的替代方案, os.system : import os

os.system("python userscript.py")

如果你想知道为什么它不那么受欢迎,这里是文档的引用: 子流程模块提供了更强大的工具来生成新流程并检索...

如果您在交互式解释器中尝试,您可以看到发生了什么: >>> compile(open('test.py').read(), 'read.py', 'exec')

at 0x10b916130, file "read.py", line 1>

内置编译将源代码行编译为代码对象。 要实际运行代码对象,您需要执行它: >>> codeobj = compile(open('test.py').read(), 'read.py', 'exec')

>>> ex...

似乎alarm_detection包所在的目录不在你的python路径中。 您只能从sys.path包含的目录导入包和模块。 path中包含的默认目录是当前目录(运行脚本的位置)和主python目录,其中包含所有已安装的软件包(如numpy,os,math等)。 您可以(暂时)修改python路径。 如果您的包alarm_detection包含在目录/full/path/dir/那么您可以从那里导入它,如下所示: import sys

# Adds the other directory to y...

相关文章

Python 编程语言具有很高的灵活性,它支持多种编程方法,包括过程化的、面向对象的和函数式的。但最重

...

python2和python3的区别,1.性能 Py3.0运行 pystone benchmark的速

...

思路 视频播放地址提取 直接解析一下原网页的源文件,利用正则就可以得到所有视频的播放地址,下面的

...

Python的文件类型 Python有三种文件类型,分别是源代码文件、字节码文件和优化代码文件

源代

...

Hi Pythonistas! 测试和调试 Testing & Debuggi

...

如果出现如下错误: >>> import sqlite3 Traceback (mo

...

用python访问hdfs是个很头疼的事情。 这个是pyhdfs的库 import pyhdfs f

...

首先我参阅了许多关于中文问题的例子,但都没人能解决我的问题,苦恼了很久。 关于环境我会一一道来。

...

file(filename[,mode[,bufsize]]) 说明:file类型的构造函数

...

各位大虾晚上好,我有个问题想请教你们,我想美化html的file外观,但貌似现在还不能用css直接设计

...

最新问答

如果启用了复制处理程序,请确保将其置于其中一个安全角色之后。 我见过人们做的另一件事是在不同的端口上运行admin。 最好在需要auth的页面上使用SSL,这样你就不会发送明确的密码,因此管理和复制将发生在8443上,而常规查询将在8080上发生。 如果您要签署自己的证书,请查看此有用的SO页面: 如何在特定连接上使用不同的证书? I didn't know that /admin was the context for SOLR admin because /admin does not re

第一:在您的样本中,您有: 但是你在询问 //td[@class=‘CarMiniProfile-TableHeader’] (注意TableHeader中的大写'T')。 xpath区分大小写。 第二:通过查询// td [@ class ='CarMiniProfile-TableHeader'] / td,你暗示你在外部td中有一个'td'元素,而它们是兄弟姐妹。 有很多方法可以在这里获得制作和模型

这是你的答案: http://jsfiddle.net/gPsdk/40/ .preloader-container { position: absolute; top: 0px; right: 0px; bottom: 0px; left: 0px; background: #FFFFFF; z-index: 5; opacity: 1; -webkit-transition: all 500ms ease-out;

问题是,在启用Outlook库引用的情况下, olMailItem是一个保留常量,我认为当您将Dim olMailItem as Outlook.MailItem ,这不是问题,但是尝试设置变量会导致问题。 以下是完整的解释: 您已将olMailItem声明为对象变量。 在赋值语句的右侧,在将其值设置为对象的实例之前,您将引用此Object 。 这基本上是一个递归错误,因为你有对象试图自己分配自己。 还有另一个潜在的错误,如果之前已经分配了olMailItem ,这个语句会引发另一个错误(可能是

我建议使用wireshark http://www.wireshark.org/通过记录(“捕获”)设备可以看到的网络流量副本来“监听”网络上发生的对话。 当您开始捕获时,数据量似乎过大,但如果您能够发现任何看起来像您的SOAP消息的片段(应该很容易发现),那么您可以通过右键单击并选择来快速过滤到该对话'关注TCP Stream'。 然后,您可以在弹出窗口中查看您编写的SOAP服务与Silverlight客户端之间的整个对话。 如果一切正常,请关闭弹出窗口。 作为一个额外的好处,wireshar

Android默认情况下不提供TextView的合理结果。 您可以使用以下库并实现适当的aligntment。 https://github.com/navabi/JustifiedTextView Android Does not provide Justified aligntment of TextView By default. You can use following library and achieve proper aligntment. https://github.com/

你的代码适合我: class apples { public static void main(String args[]) { System.out.println("Hello World!"); } } 我将它下载到c:\ temp \ apples.java。 以下是我编译和运行的方式: C:\temp>javac -cp . apples.java C:\temp>dir apples Volume in drive C is HP_PAV

12个十六进制数字(带前导0x)表示48位。 那是256 TB的虚拟地址空间。 在AMD64上阅读wiki(我假设你在上面,对吗?)架构http://en.wikipedia.org/wiki/X86-64 12 hex digits (with leading 0x) mean 48 bits. That is 256 TB of virtual address space. Read wiki on AMD64 (I assume that you are on it, right?) ar

这将取决于你想要的。 对象有两种属性:类属性和实例属性。 类属性 类属性对于类的每个实例都是相同的对象。 class MyClass: class_attribute = [] 这里已经为类定义了MyClass.class_attribute ,您可以使用它。 如果您创建MyClass实例,则每个实例都可以访问相同的class_attribute 。 实例属性 instance属性仅在创建实例时可用,并且对于类的每个实例都是唯一的。 您只能在实例上使用它们。 在方法__init__中定

 类似资料: