在同一文件夹中导入.py脚本

时间:2020-03-30 15:44:42

标签: python python-import

我有一个名为sample.py的python文件,它具有一些功能,还有一个我想从其中访问sample.py的功能的python文件。我已经尝试了下面的代码,如果我将目录包含在import语句中,则可以正常工作。

from Integrated.sample import *

但是文件夹与我的应用程序不能相同。另外,我在stackoverflow中提到了另一个与我的问题类似的问题,尝试了其中一个答案

from .sample import *

出现以下错误

ModuleNotFoundError: No module named '__main__.crypto'; '__main__' is not a package

目录结构:

-module 
  --__init__.py
  --sample.py
  --tester.py

希望获得解决方案

预先感谢

2 个答案:

答案 0 :(得分:0)

如果它们在同一模块中,则可以直接导入文件,如下所示。为我工作。

sample.py

@Override
public void start(Stage primaryStage) throws Exception {
    Pane root = new Pane();
    Rectangle bounds = new Rectangle(50, 50, 100, 100);
    Circle circle = new Circle(bounds.getX() + 0.5 * bounds.getWidth(), bounds.getY() + 0.5 * bounds.getHeight(),
            0);
    circle.setClip(bounds);
    root.getChildren().add(circle);

    Timeline animation = new Timeline(
            new KeyFrame(Duration.ZERO, new KeyValue(circle.fillProperty(), Color.BLUE),
                    new KeyValue(circle.radiusProperty(), 0d)),
            new KeyFrame(Duration.seconds(5), new KeyValue(circle.fillProperty(), Color.RED), new KeyValue(
                    circle.radiusProperty(), 0.5 * Math.hypot(bounds.getWidth(), bounds.getHeight())))); // at the end of the animation the circle should reach the corners -> diameter = diagonale of rect

    root.setOnMouseClicked(evt -> animation.playFromStart());

    Scene scene = new Scene(root, 800, 600);
    primaryStage.setScene(scene);
    primaryStage.show();
}

tester.py

def myfun():
    print("Sample")

输出

from sample import myfun
myfun()

答案 1 :(得分:0)

如果我理解您的问题正确,那么您想从另一个python文件夹导入一个python模块。 我看到您已经有一个__init__.py文件,需要使用该文件来声明此文件夹是python软件包。 导航到要导入模块的文件。

from root.parent.folder.file import function_name

其他方式

import sys
import os
sys.path.append(os.path.abspath("/home/helloworld"))
from helloworld import *

希望这会有所帮助。