【问题标题】:Why are my python scripts not updating even though that are saved?为什么即使保存了我的python脚本也没有更新?
【发布时间】:2016-10-15 15:55:59
【问题描述】:

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

首先,我从 Github 克隆了一个存储库,其目录结构如下:

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

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

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,我以前从未遇到过这个问题。

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

【问题讨论】:

  • 你试过删除*.pyc文件吗?
  • 刚刚试过,没有骰子。
  • 这两个目录中是否有__init__.py

标签: python import permissions directory save


【解决方案1】:

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

如果你有主目录,即你克隆的repo,我们称之为main_repo,和一个脚本script1.py,你想从另一个文件夹中的script2.py导入东西,它应该看起来像

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    • 2013-02-12
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多