Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在文件中看不到新的更改_Python_Git_Caching_Import_Git Clone - Fatal编程技术网

Python在文件中看不到新的更改

Python在文件中看不到新的更改,python,git,caching,import,git-clone,Python,Git,Caching,Import,Git Clone,当我向文件中添加新函数时,如果我只是在终端中运行脚本,或者如果我启动ipython并尝试在那里导入函数,我也无法导入它们。我没有.pyc文件。看起来好像正在进行某种缓存。我从未真正面对过这样的问题,尽管我已经从事了一段时间的各种项目。为什么会这样 我看到的是:我启动了ipython,其他程序员很久以前编写的函数可以很好地导入。如果我将它们注释掉并保存文件,它们仍然可以导入而不会出现任何问题。如果我写新函数,它们就不能被导入 目录是git目录,我克隆了repo。然后创建了新的分支,我切换到它。Py

当我向文件中添加新函数时,如果我只是在终端中运行脚本,或者如果我启动
ipython
并尝试在那里导入函数,我也无法导入它们。我没有
.pyc
文件。看起来好像正在进行某种缓存。我从未真正面对过这样的问题,尽管我已经从事了一段时间的各种项目。为什么会这样

我看到的是:我启动了
ipython
,其他程序员很久以前编写的函数可以很好地导入。如果我将它们注释掉并保存文件,它们仍然可以导入而不会出现任何问题。如果我写新函数,它们就不能被导入

目录是
git
目录,我克隆了repo。然后创建了新的分支,我切换到它。Python版本是
3.7.5
,我正在使用不久前创建的虚拟环境,我使用
source activate py37
激活了它

我不知道它是否重要,但我在脚本所在的文件夹中有一个空的
\uuuu init\uuuu.py

代码(我认为不相关,但仍然):


public\u class\u props
是一个旧函数,可以导入,但是
hello
-不能导入。

假设您已成功将项目克隆到计算机中,如果从不同的.py文件导入函数或方法有问题,请检查以下几点

  • 检查您的工作目录,是否与包含函数/方法的.py文件/模块所在的目录相同

  • 从模块导入任何函数/方法后,即使注释掉该函数/方法并保存.py文件,只要重新导入,它也不会影响已导入的函数

  • 只要是从自己的.py文件导入的问题,虚拟环境就与此无关

  • 编辑:


    选中此项,它可能会为您提供一些有关导入python模块时缓存如何工作的信息。

    假设您已成功将项目克隆到计算机中,如果从其他.py文件导入函数或方法时出现问题,请检查以下几点

  • 检查您的工作目录,是否与包含函数/方法的.py文件/模块所在的目录相同

  • 从模块导入任何函数/方法后,即使注释掉该函数/方法并保存.py文件,只要重新导入,它也不会影响已导入的函数

  • 只要是从自己的.py文件导入的问题,虚拟环境就与此无关

  • 编辑:


    选中此选项,它可能会为您提供一些有关导入python模块时缓存如何工作的信息。

    问题在于
    PYTHONPATH
    被设置为错误的文件夹。该项目有两个文件夹:新旧文件夹,名称相似,项目结构相同(但文件内容不同),并且
    PYTHONPATH
    被设置为旧项目。

    问题是
    PYTHONPATH
    被设置为错误的文件夹。该项目有两个文件夹:old和new,名称相似,具有相同的项目结构(但文件内容不同),并且
    PYTHONPATH
    被设置为旧项目。

    我重新启动ipython并重新运行python,因此它不是2。其他旧函数也可以很好地导入,因此它也不是1。init.py将仅为空。它只是说目录是一个python包,没什么好担心的。如果你能编写一些代码,它将帮助我们更好地理解这种情况。其他旧函数也可以很好地导入,因此它也不是1。init.py将仅为空。它只是说目录是一个python包,没什么好担心的。如果你能写一些代码,它将帮助我们更好地了解情况。
    import hail as hl
    import os
          
    class SeqrDataValidationError(Exception):
        pass
    
    # Get public properties of a class
    def public_class_props(cls):
        return {k: v for k, v  in cls.__dict__.items() if k[:1] != '_'}
    
    def hello():
        print('hello')