相关疑难解决方法(0)

如何在python shell中重新加载一个类?

如果我导入定义属于某个包的同名类的模块,则由于父包的__init__.py而导致它作为Class而不是Module导入.有关详细信息,请参阅不同目录的不同导入结 在Python shell或ipython shell中,如果我这样做

from MyPak import MyMod

MyModule总是作为Class导入,因此我无法重新加载它(reload()仅适用于模块).跑

from MyPak import MyMod

再似乎没有更新类定义.任何人都可以建议一种方法来更新python shell中的类?

PS.无需重新启动python解释器.

pps.万一你手头有代码并想测试它:我实际上是在谈论BioPython,我正在研究Bio.PDB.PDBParser.我有一个ipython shell(v0.10)并编辑PDBParser.py.只是无法在ipython中重新加载它.

所以这就是我所做的:

# start ipython v0.10
import Bio
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure()
# then I make changes,e.g. simply print some text, in PDBParser.py
del Bio
del PDBParser
del s
import Bio  # or reload(Bio) without deleting all the objects
from Bio.PDB import PDBParser
p = PDBParser()
s = p.get_structure() # expected output after change not …
Run Code Online (Sandbox Code Playgroud)

python ipython

63
推荐指数
5
解决办法
5万
查看次数

PySpark Overwrite 添加了 sc.addPyFile

我在此路径下保存了这两个文件:

C:\code\sample1\main.py

def method():
    return "this is sample method 1"
Run Code Online (Sandbox Code Playgroud)

C:\code\sample2\main.py

def method():
    return "this is sample method 2"
Run Code Online (Sandbox Code Playgroud)

然后我运行这个:

from pyspark import SparkContext
from pyspark.sql import SparkSession

sc = SparkContext()
spark = SparkSession(sc)

sc.addPyFile("~/code/sample1/main.py")
main1 = __import__("main")
print(main1.method()) # this is sample method 1

sc.addPyFile("~/code/sample2/main.py") # Error
Run Code Online (Sandbox Code Playgroud)

错误是

Py4JJavaError:调用 o21.addFile 时出错。: org.apache.spark.SparkException: 文件 C:\Users\hans.yulian\AppData\Local\Temp\spark-5da165cf-410f-4576-8124-0ab23aba6aa3\userFiles-25a7ca23-84fb-42b7-969d67fmain .py 存在并且与 /C:/Users/hans.yulian/Documents/spark-test/main2/main.py 的内容不匹配

这意味着它的临时文件夹中已经有“main.py”文件并且内容不同。我想知道这种情况是否有任何解决方法,但对我来说,我有以下限制:

  1. 文件名仍然必须是“main.py”,只有文件夹可以不同
  2. 可以以某种方式清除临时文件夹以添加 aga
  3. 在另一个文件中我唯一的解决方案是在 main.py 前面附加随机字符串,例如abcdemain.pyfghijmain.py,然后我将导入 main = __import__("abcdemain"),但这个不是真的可取

python-3.x apache-spark pyspark

3
推荐指数
1
解决办法
5507
查看次数

标签 统计

apache-spark ×1

ipython ×1

pyspark ×1

python ×1

python-3.x ×1