在不运行.Py的情况下导入Python模块

努里穆里

我想运行模块而不运行:

main.py:

from ex import x
global x

call ex.py

y = x+2
print y

例如:

x=5*3

那就是简化的代码。如您所见,我调用ex.py并使用变量x。但是当我运行main.py时,ex.py也正在运行。但我只想得到x是什么并在main.py中使用

编辑:

main.py:

import pygtk
pygtk.require20()
import gtk
import subprocess 
from ex import x
global x

类Application(对象):

def __init__(self):
    self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.window.set_title("Graphics")
    self.window.set_position(gtk.WIN_POS_CENTER)
    self.window.set_border_width(0)    
    self.window.connect("delete_event", gtk.main_quit)


    self.giris=gtk.Label("Fill Up The Required Values Below:")
    self.giris.set_alignment(0.5,0)        

    self.giris1=gtk.Label("Read Values:")
    self.giris1.set_alignment(0.5,0) 

    self.box=gtk.HButtonBox()


    self.entry_a1=gtk.Entry()
    self.entry_a2=gtk.Entry()
    self.entry_a3=gtk.Entry()
    self.entry_a4=gtk.Entry()
    self.entry_a5=gtk.Entry()
    self.entry_a6=gtk.Entry()
    self.entry_a7=gtk.Entry()
    self.entry_a8=gtk.Entry()

    self.entry_b1=gtk.Entry()
    self.entry_b2=gtk.Entry()
    self.entry_b3=gtk.Entry()
    self.entry_b4=gtk.Entry()
    self.entry_b5=gtk.Entry()
    self.entry_b6=gtk.Entry()
    self.entry_b7=gtk.Entry()
    self.entry_b8=gtk.Entry() 

    self.label_a1=gtk.Label("X-Label:")
    self.label_a2=gtk.Label("Y-Label:")
    self.label_a3=gtk.Label("Scale:")
    self.label_a4=gtk.Label("XrangePos:")
    self.label_a5=gtk.Label("XrangeNeg:")
    self.label_a6=gtk.Label("YrangePos:")
    self.label_a7=gtk.Label("YrangeNeg:")
    self.label_a8=gtk.Label("Data:")

    self.label_b1=gtk.Label("X-Label:")
    self.label_b2=gtk.Label("Y-Label:")
    self.label_b3=gtk.Label("Scale:")
    self.label_b4=gtk.Label("XrangePos:")
    self.label_b5=gtk.Label("XrangeNeg:")
    self.label_b6=gtk.Label("YrangePos:")
    self.label_b7=gtk.Label("YrangeNeg:")
    self.label_b8=gtk.Label("Data:")

    self.button=gtk.Button("Write")
    self.button.connect("clicked",self.yaz)
    self.button.set_alignment(0.5,0)
    self.button.set_size_request(10,2)


    self.button1=gtk.Button("Read")
    self.button1.connect("clicked",self.oku)
    self.button1.set_alignment(0.5,0)  

    self.button2=gtk.Button("Open")
    self.button2.connect("clicked",self.ac)
    self.button2.set_alignment(0.5,0)

    self.table =gtk.Table(rows=10,columns=4)
    self.table.set_row_spacings(2)
    self.table.set_col_spacings(5)


    self.table.attach(self.giris,0,2,0,1)
    self.table.attach(self.label_a1,0,1,1,2)
    self.table.attach(self.label_a2,0,1,2,3)
    self.table.attach(self.label_a3,0,1,3,4)
    self.table.attach(self.label_a4,0,1,4,5)
    self.table.attach(self.label_a5,0,1,5,6)
    self.table.attach(self.label_a6,0,1,6,7)
    self.table.attach(self.label_a7,0,1,7,8)
    self.table.attach(self.label_a8,0,1,8,9)
    self.table.attach(self.button, 0,2,9,10)
    self.table.attach(self.entry_a1,1,2,1,2)
    self.table.attach(self.entry_a2,1,2,2,3)
    self.table.attach(self.entry_a3,1,2,3,4)
    self.table.attach(self.entry_a4,1,2,4,5)
    self.table.attach(self.entry_a5,1,2,5,6)
    self.table.attach(self.entry_a6,1,2,6,7)
    self.table.attach(self.entry_a7,1,2,7,8)
    self.table.attach(self.entry_a8,1,2,8,9)

    self.table.attach(self.giris1,2,4,0,1)
    self.table.attach(self.label_b1,2,3,1,2)
    self.table.attach(self.label_b2,2,3,2,3)
    self.table.attach(self.label_b3,2,3,3,4)
    self.table.attach(self.label_b4,2,3,4,5)
    self.table.attach(self.label_b5,2,3,5,6)
    self.table.attach(self.label_b6,2,3,6,7)
    self.table.attach(self.label_b7,2,3,7,8)
    self.table.attach(self.label_b8,2,3,8,9)
    self.table.attach(self.button2,2,3,9,10)

    self.table.attach(self.entry_b1,3,4,1,2)
    self.table.attach(self.entry_b2,3,4,2,3)
    self.table.attach(self.entry_b3,3,4,3,4)
    self.table.attach(self.entry_b4,3,4,4,5)
    self.table.attach(self.entry_b5,3,4,5,6)
    self.table.attach(self.entry_b6,3,4,6,7)
    self.table.attach(self.entry_b7,3,4,7,8)
    self.table.attach(self.entry_b8,3,4,8,9)
    self.table.attach(self.button1,3,4,9,10)




    self.window.add(self.table)
    self.window.show_all()


def yaz(self,penar):

    yaz_grup =(self.label_a1.get_label(),self.label_a2.get_label(),
               self.label_a3.get_label(),self.label_a4.get_label(),
               self.label_a5.get_label(),self.label_a6.get_label(),
               self.label_a7.get_label(),self.label_a8.get_label())

    yaz_grup1=(self.entry_a1.get_text(),self.entry_a2.get_text(),
                self.entry_a3.get_text(),self.entry_a4.get_text(),
                self.entry_a5.get_text(),self.entry_a6.get_text(),
                self.entry_a7.get_text(),self.entry_a8.get_text())
    f = open("x","w")  

    for k in range(8):
        self.veri = yaz_grup[k]
        self.veri1=yaz_grup1[k]
        f.write(" %s %s \n" %(self.veri,self.veri1))           
    f.close 

def oku(self,penar): 
    x = subprocess.Popen(["python","/home/emeks/workspace/ex/ex.py"])
    print x

例如:

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk


global x

dialog = gtk.FileChooserDialog("Open..",None,gtk.FILE_CHOOSER_ACTION_OPEN,
                                 (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                                  gtk.STOCK_OPEN, gtk.RESPONSE_OK))
dialog.set_default_response(gtk.RESPONSE_OK)



def foo():       

    response = dialog.run()    
    if response == gtk.RESPONSE_OK:
        dialog.get_filename(), 'selected'
    elif response == gtk.RESPONSE_CANCEL:
        print 'Closed, no files selected'
        x =dialog.get_filename()
        print x

if __name__=='__main__':
    foo()

dialog.destroy()

那就是整个代码,正如我所说的,我想从ex中获取“ X”:

d-stroyer

正确的语法是

if __name__=='__main__':
    ex()

编辑:要更完整的答案,这是一个示例。

例如:

# some lines of code
print ("Hello World")
x=3*5

# A function
def mysum(a,b):
    return a+b

# Protect execution
if __name__=='__main__':
    print ("I am main")
    print ("2 + 2 is %d" % mysum(2,2))

将始终打印“ Hello World”,但仅在直接运行ex.py而不是导入的情况下,才会打印“ I am main”。

x 可从导入中获得。

编辑2:从问题中获取完整的ex.py代码:

#!/usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk

global x

def foo():       

    response = dialog.run()    
    if response == gtk.RESPONSE_OK:
        dialog.get_filename(), 'selected'
    elif response == gtk.RESPONSE_CANCEL:
        print 'Closed, no files selected'
        x =dialog.get_filename()
        print x

if __name__=='__main__':

    # dialog related calls shall be protected against execution
    dialog = gtk.FileChooserDialog("Open..",None,gtk.FILE_CHOOSER_ACTION_OPEN,
                                 (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
                                  gtk.STOCK_OPEN, gtk.RESPONSE_OK))
    dialog.set_default_response(gtk.RESPONSE_OK)

    foo()
    dialog.destroy()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在不导入模块的情况下运行模块?

如何在不导入的情况下模仿Python模块?

如何在不导入外部模块(matplotlib除外)的情况下绘制运行平均值?

可以在不导入的情况下使用Python的标准库的Python写模块吗?

如何在不导入的情况下从已编译的Python模块获取函数名?

如何在不导入的情况下检查python模块是否存在

如何在不导入其他模块的情况下更改python中文本的颜色?

在不导入/运行的情况下查看另一个Python文件的变量

如何在不更改导入的情况下将Python 3模块更改为软件包?

在不运行Python包的情况下检查它的内容?

在不声明解释器的情况下运行python脚本

在没有相对导入的情况下运行python项目

为什么我可以在不导入服务提供者模块的情况下使用服务?

如何在不导入Julia的功能的情况下加载软件包模块

Powershell在不导入AD模块的情况下获取密码到期日期

如何在不进行更改导入的情况下从模块运行脚本?

导入模块而不运行它

是否可以在不运行单元测试的情况下编译unittest并为特定模块显式运行unittest?

在不运行getter的情况下访问Kotlin字段

ElasticSearch Ruby在不运行ElasticSearch的情况下返回结果

在不启动浏览器窗口的情况下运行

在不运行Tomcat的情况下进行RestAssured测试

在不锁定表的情况下运行MySQLDump

如何在不阻止的情况下从终端运行命令?

如何在不阅读〜/ .profile的情况下运行sh?

PHP:在不访问网页的情况下运行PHP脚本?

在不访问/ dev的情况下运行X

在不刻录到DVD的情况下运行ISO

如何在不冻结GUI的情况下运行它