我有以下文件夹结构.
application/app/folder/file.py
我想从另一个驻留的Python文件中的file.py中导入一些函数
application/app2/some_folder/some_file.py
我试过了
from application.app.folder.file import func_name
和其他一些尝试,但到目前为止我无法正确导入.我怎样才能做到这一点?
我在一个模块中加载一个pickle文件时有些麻烦,该模块与我腌制文件的模块不同.我知道以下线程:无法使用pickle和multipile模块加载文件.我已经尝试了将类导入到模块中的建议解决方案,我正在取消我的文件,但它一直给我同样的错误:
AttributeError: Can't get attribute 'Document' on <module '__main__' from ''>
我想要做的基本结构:
Util文件,用于pickles和unpickles对象,utils.py:
import pickle
def save_document(doc):
from class_def import Document
write_file = open(file_path, 'wb')
pickle.dump(doc, write_file)
def load_document(file_path):
from class_def import Document
doc_file = open(file_path, 'rb')
return pickle.load(doc_file)
Run Code Online (Sandbox Code Playgroud)
文件定义了Document对象并调用了save util方法,class_def.py:
import utils
class Document(object):
data = ""
if __name__ == '__main__':
doc = Document()
utils.save_document(doc)
Run Code Online (Sandbox Code Playgroud)
调用load util方法的文件,process.py:
import utils
if __name__ == '__main__':
utils.load_document(file_path)
Run Code Online (Sandbox Code Playgroud)
运行process.py会给出上面提到的AttributeError.如果我将class_def.py文件导入process.py并运行其原始线程中提到的main方法,它可以工作,但我希望能够单独运行这两个模块,因为class_def文件是一个预处理步骤,需要相当一段时间 我该怎么解决这个问题?
我正在尝试在烧瓶应用程序中提供 pytorch 模型。当我早些时候在 jupyter 笔记本上运行此代码时,此代码正在运行,但现在我在虚拟环境中运行它,显然即使类定义就在那里,它也无法获得属性“Net”。所有其他类似的问题都告诉我在同一个脚本中添加保存模型的类定义。但它仍然不起作用。火炬版本是 1.0.1(保存的模型和 virtualenv 都在其中进行了训练)我做错了什么?这是我的代码。
import os
import numpy as np
from flask import Flask, request, jsonify
import requests
import torch
from torch import nn
from torch.nn import functional as F
MODEL_URL = 'https://storage.googleapis.com/judy-pytorch-model/classifier.pt'
r = requests.get(MODEL_URL)
file = open("model.pth", "wb")
file.write(r.content)
file.close()
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(input_size, hidden_size)
self.fc2 = nn.Linear(hidden_size, hidden_size)
self.fc3 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = torch.sigmoid(self.fc1(x))
x = torch.sigmoid(self.fc2(x))
x = self.fc3(x)
return F.log_softmax(x, dim=-1)
model …Run Code Online (Sandbox Code Playgroud)