小编Jus*_*oll的帖子

从父目录导入Python

我有以下内容:

         ModuleFolder
              |
              |-->. ModuleFile.py .
              |
              '-->. TestsFolder .
                         |
                         '---> UnitTest1.py
Run Code Online (Sandbox Code Playgroud)

我正在尝试从父目录导入.在这种情况下,我试图从测试文件夹运行"UnitTest1.py",并从它上面的目录(文件"ModuleFile.py")导入.

  • 我知道已经有很多答案了. SO问题1,SO问题2,每隔一个问题.我只是找不到"使用../"作为相对导入而不是显式路径.
  • 我知道,从Python 2.5开始,他们根据提到使用的文档支持"相对导入",from .. import *但我特意尝试这样做,import MyModuleName因此我可以在单元测试中更明确,并避免名称的错误/冲突.

我在做什么(它对我有用)如下:

sys.path.append("../")
Run Code Online (Sandbox Code Playgroud)

然后从父目录导入我需要的内容.

  • 是的,父目录中有__init__.py,
  • 不,我的父路径不是Python路径或环境变量的一部分
  • 为什么我不添加父路径sys.path?因为它是相对的.如果我从/ home/workspace/MyModule/unittests /运行并且我的模块在/ home/workspace/MyModule /下我假设如果同事运行这个,那么添加/ home/workspace/MyModule /到路径不一定是真的在他自己的/ home/documents/MyModule目录下的机器上.

我的问题:

这是Python适当的吗?如果没有,这有什么问题.有没有更好的办法?或者这是一个真正的RTFM时刻,答案是我已经看过的7个以上SO问题之一?(我看到那些都推荐显式路径而不是我采用的相对路径方法).

其他有用的信息:

  • Python 2.6
  • 在Linux上工作但可以轻松跳转到Win.

python

19
推荐指数
2
解决办法
3万
查看次数

Unity场景管理和Android - 无法加载场景

我是C#/ Unity的新手(温柔) - 我正在尝试创建自己的脚本,向Inspector添加一个公共变量,这样我就可以让一个脚本适用于多个GameObjects(或者我认为).

脚本非常简单.

它适用于PC,但它不适用于Android.

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.EventSystems;

public class BtnLoadScene : MonoBehaviour {
    public Object SceneObj;
    private string SceneName;

    public void LoadLevel()
    {
        SceneName = SceneObj.name;
        Debug.Log (SceneName);
        SceneManager.LoadScene(SceneName);
    }
}
Run Code Online (Sandbox Code Playgroud)

我将此脚本作为组件附加到驱动场景加载的所有按钮(在整个应用程序中).同样,这里的值是我可以将我的"场景"从assets文件夹拖到检查器/组件中(因此我不必显式管理"整数"或"字符串" - 它将全部通过对象引用).

参见例如: 在此输入图像描述

再次,这适用于PC UPDATE:根据评论中的建议,我在独立播放器中尝试了这个并且它失败了.这仅适用于Unity编辑器.当我为Android构建时(是的它编译并且我可以安装APK)它不起作用 - 第一个场景加载,按钮响应我的触摸,我看到它"压下",但亚行抛出:

12-23 15:37:27.028 14816 14847 I Unity   : NullReferenceException: Object reference not set to an instance of an object
12-23 15:37:27.028 14816 14847 I Unity   :   at BtnLoadScene.LoadLevel () [0x00000] in <filename unknown>:0
12-23 15:37:27.028 14816 …
Run Code Online (Sandbox Code Playgroud)

c# unity-game-engine unity5

6
推荐指数
1
解决办法
2764
查看次数

Python/PDF创建使用ReportLab - 自制的网格打印带有图案但在屏幕上看起来很好

我正在尝试制作自己的网格(看起来非常像这样:http: //tinyurl.com/cdyre6k-以公制单位为毫米的心电图纸).

我正在使用ReportLab/Python(opensource)来制作这些报告.下面是我的代码片段.

在屏幕上,它看起来很棒!:

>我在屏幕上看到的内容<

然而,当我将它发送到打印机时(是的,我也用打印机设置修改)它会打印一些线条,而不是其他线条(有时它是有条不紊的并且打印出图案式格子图案,有时则是更粗/更细的线条;请记住,打印机的输出是一致的,取决于我设置的笔画宽度.

>我在打印机上看到的内容!<

我尝试了各种笔画宽度组合,以及各种打印机设置组合...我无法正确打印!我尝试了另一种打印机并获得了更好的结果,但我必须将打印机设置设置为超过1200 dpi(CAD级别打印).另一台打印机设置为600dpi.在那台相同的打印机(600dpi)上,我打印了一个由前同事制作的文件,打印就好了(请注意,他没有使用ReportLab,所以我不能使用他的代码/解决方案).

到底是怎么回事?这是打印机上的别名问题吗?如果我将网格转换为位图(或其他格式),它会对我有帮助吗?我该如何解决这个问题(我唯一的选择是使用Python和ReportLab)?ReportLab手册没有帮助,"谷歌"没有帮助,而以前的StackExchange问​​题似乎没有涵盖这一特定主题.如果我将笔画宽度设置为"1",我可以让网格打印所有行,但是后面的网格线太粗了.

最终结果是我正在处理的折线图,我知道ReportLab有图表功能,但reportlabs图表/网格功能不能给我我的项目所需,所以我被迫让我拥有主要/次要线的自己的网格(也许我错过了一些东西,并开放替代技术,但目前它看起来很好的PDF形式,只是不在打印机).

任何建议表示赞赏!

TIA,

-J

    for i in decimal_range(0, _time, 1):
        if (i % 5.0 == 0):
            if (i % 25.0 == 0):
                grid_pattern.add(shapes.Line(_temp_x, 
                                             (_temp_y + _height_of_box), 
                                             _temp_x,
                                             (_temp_y + _height_of_box+4),
                                             strokeWidth=1,
                                             strokeColor=colors.black))
            else:
                pass

            grid_pattern.add(shapes.Line(_temp_x, _temp_y, _temp_x,
                                         (_temp_y + _height_of_box),
                                         strokeWidth=.12,
                                         strokeColor=colors.pink))
        else:
            grid_pattern.add(shapes.Line(_temp_x, _temp_y, _temp_x,
                                         (_temp_y + _height_of_box),
                                         strokeWidth=.12,
                                         strokeColor=colors.pink))
        _temp_x += 1 * mm

    _temp_x = xorigin

    for i in range(0, _mv, 1):
        if (i …
Run Code Online (Sandbox Code Playgroud)

python printing pdf reportlab postscript

5
推荐指数
1
解决办法
1858
查看次数

将Pythons错误写入txt文件

我无法正常工作(很明显) - 我几乎就在那里,我很清楚为什么它不起作用 - 只是不知道如何让它工作.

这是假设尝试将文件读入内存,如果失败则转到代码块的"except"子句(该部分为'duh').错误文件打印:"< main .DebugOutput instance in 0x04021EB8>".我想要它做的是打印实际的错误.像FileIOError或TraceBackError或该错误文件的任何内容.这只是开始阶段,我计划添加日期戳等内容并将其附加,而不是写入/创建 - 我只需要将实际错误打印到文件中.建议吗?

import os, sys

try:
    myPidFile = "Zeznadata.txt"
    myOpenPID_File = open(myPidFile, "r") #Attempts to open the file
    print "Sucessfully opened the file: \"" + myPidFile + "\"."

except:
    print "This file, \"" + myPidFile + "\", does not exist.  Please check the file name and try again.  "
    myFileErr = open("PIDErrorlog.txt", "w")
    myStdError = str(sys.stderr)
    myFileErr.write(myStdError)
    myFileErr.close()
    print "\nThis error was logged in the file (and stored in …
Run Code Online (Sandbox Code Playgroud)

python error-handling

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

Iteration WAS在我的脚本中工作,现在我不能让python迭代 - 发生了什么?

我的python ide坏了吗?

import sys

i = 0
sample = ("this", "is", "Annoying!")

for line in sample:
    print i, line
    i + 1
Run Code Online (Sandbox Code Playgroud)

现在给我......

0 this 
0 is 
0 Annoying!

我想,它会给我:

1 this 
2 is 
3 Annoying

我有其他正在处理的脚本,而且它们都破坏了 - 当他们使用for语句打印大量迭代时,它们都具有相同的行号 - 有人可以告诉我发生了什么 - 非常沮丧大声笑.. Python打破了吗?我需要睡觉吗?这有什么不对?

python

0
推荐指数
2
解决办法
126
查看次数