我正在尝试从存储在我的谷歌驱动器中的 .py 文件导入一个类。
最初,我已经安装了谷歌驱动器如下:
from google.colab import drive
drive.mount('/content/drive')
然后使用以下方法导航到目标文件夹:
%cd "/content/drive/MyDrive/Autonomous_Driving/GRTP/clstm_lifelong/us1011/sgan-nsl"
!ls
它显示如下输出:
/content/drive/MyDrive/Autonomous_Driving/GRTP/clstm_lifelong/us1011/sgan-nsl
checkpoint.pkl __pycache__ utils_wcgan_decompose.py
loss.mat trained_models
model_wcgan_decompose.py train_wcgan_decompose.py
现在在那个驱动器的
model_wcgan_decompose.py
文件中有一些名为highwayNet_d
,highwayNet_g_compose
,highwayNet
的类。现在我正在尝试使用以下方法导入该类:
from model_wcgan_decompose import highwayNet_d
但它显示如下错误:
ImportError Traceback (most recent call last)
<ipython-input-26-256c2191a0a5> in <cell line: 9>()
7 #import model_wcgan_decompose
8
----> 9 from model_wcgan_decompose import highwayNet_d
10
11
ImportError: cannot import name 'highwayNet_d' from 'model_wcgan_decompose' (/content/drive/MyDrive/Autonomous_Driving/GRTP/clstm_lifelong/us1011/sgan-nsl/model_wcgan_decompose.py)
请建议我该如何解决?
我们可以用
some_file
打开codecs
的代码,使用json
来load
它,并使它成为str
ing所以我们可以执行some_code_in_string
;重要的部分是我们将其 'execution_count'
ionary 中的 dict
从 None
更改为 1
(或者我们希望它对代码进行 exec
ute 的次数)。
所以在这里
'SomeClass.ipynb'
我有以下代码:
class SomeClass:
def __init__(self):
print(f'init {self.__class__.__name__}')
self.foo = 0
SomeClass()
在另一个文件中,我们可以运行:
import codecs
import json
some_file = codecs.open('/content/drive/My Drive/Colab Notebooks/SomeClass.ipynb', 'r')
some_file = some_file.read()
some_file = json.loads(some_file)
some_file['cells'][0]['execution_count'] = 1
some_code_in_string = ''
for code_in_file in some_file['cells']:
for _code_in_file in code_in_file['source']:
some_code_in_string += _code_in_file
some_code_in_string += '\n'
exec(some_code_in_string)
输出:
init SomeClass