为什么我的python脚本即使保存了也没有更新?

时间:2016-06-14 19:01:29

标签: python import permissions directory save

公平警告,我是一个相对缺乏经验的程序员,所以我的术语可能不完美。

首先,我从Github克隆了一个存储库,该存储库有一个具有以下结构的目录:

main  
   -> dir1  
      -> script1.py  
   -> dir2
      -> script2.py

其中foo包含一个名为“Class”的类,它实现了一个方法foo(),它在script2.py中调用。

script1.py
-------------------
class Class:
    def __init__(self):
      ...
    def foo(self):
      ...

...

script2.py
------------------------
    from dir1 import Class
    test = Class()
    print(dir(test))

这按预期工作并打印出Class的所有方法,包括foo。

真正的问题是,无论我如何更改script1.py,当文本似乎已保存时,如果我运行script2.py(python script2.py),dir(test)总会产生相同的结果。

例如,如果我要从script1中删除foo方法并将其替换为bar()方法,则文件将被正确保存,但是当我运行script2时,dir(test)仍将在方法中显示foo类别,并且不会显示条形 test.foo()也可以工作,但test.bar()不会,即使foo不再是类的方法而且bar也是。

到目前为止我做了什么:

  • 再次克隆存储库
  • chmod -R 777 main在进行任何更改之前
  • 我在git上添加了更改,但它没有对script2的功能进行任何更改
  • 我使用过多个文本编辑器,包括gedit,emacs,nano和Geany,但没有一个产生不同的结果

我的操作系统是Ubuntu 16.04LTS,之前我从未遇到过这个问题。

如果我应该提供任何其他信息或者我应该重试某些信息,请告诉我。

1 个答案:

答案 0 :(得分:0)

我认为问题在于您的目录结构。

如果您有主目录,即您克隆的回购,请将其称为main_repo,并将脚本script1.py,并且您要从script2.py导入内容在另一个文件夹中,它应该看起来像

main_repo --> script1.py --> other_folder --> script2.py

然后在script1.py的顶部,写from other_folder import ClassName ClassName位于script2.py

Create database WilliamsSCW; Create table WilliamsSCW.Login ( UserName varchar(50) Not Null Primary Key, Password varchar(50) Not Null); Create table WilliamsSCW.Employee ( employeeID int(8) Not Null Primary Key, employeeFName varchar(25), employeeLName varchar(25)); Create table WilliamsSCW.Customer ( custID int(8) Not Null Primary Key, custFName varchar(25), custLName varchar(25), custAddress varchar(30), custCity varchar(30), custState varchar(30), custZip int(5), custPhone BIGINT(10), custEmail text); Create table WilliamsWSC.Order1 #order is a reserved key word in MySQL and can't be used ( orderID int(20) Not Null Primary Key, orderDesc varchar(30), orderType varchar(20), orderCost int(10), orderQuantity int(6), orderContent text, orderStatus varchar(10), orderDate TimeStamp, orderShipDate Date, orderDeposit decimal(10,2), mediaID BIGINT(20), custID int(8), employeeID int(8), foreign key(mediaID) REFERENCES Media_Catalog(mediaID) ON UPDATE CASCADE ON DELETE CASCADE, foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE); Create table WilliamsSCW.Billing ( billingID int(8) Not Null Primary Key, billingDate TimeStamp Not Null, billDeposit decimal(10,2), billAmt int(8), employeeID int(8), custID int(8), orderID int(20), foreign key(employeeID) REFERENCES Employee(employeeID) ON UPDATE CASCADE ON DELETE CASCADE, foreign key(custID) REFERENCES Customer(custID) ON UPDATE CASCADE ON DELETE CASCADE, foreign key(orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE); Create table WilliamsSCW.Media_Catalog ( mediaID BIGINT(20) Not Null Primary Key, mediaCatalog varchar(30), mediaPrice decimal(10,2), mediaDesc text, mediaJob varchar(20), mediaAmntStock int(10)); Create table WilliamsSCW.Reason ( onholdID int(20) Not Null Primary Key, onholdDesc varchar(100), orderID int(20), foreign key (orderID) REFERENCES Order1(orderID) ON UPDATE CASCADE ON DELETE CASCADE);