为什么我的代码不能在命令行中工作?

时间:2018-09-27 05:47:06

标签: python command-line tiff gdal attributeerror

我正在使用Python3.6,需要在命令行中运行代码。当我在PyCharm中运行代码时,该代码有效,但是当我使用命令行时,出现此错误:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Repeater ID="rpt" runat="server" DataSourceID="xmlDS">
            <ItemTemplate>
                <p id="p<%#XPath("id")%>">
                </p>
            </ItemTemplate>
        </asp:Repeater>
        <asp:Label ID="Label1" runat="server" Text="Panel created."></asp:Label>                
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="hiddenAsyncTrigger" />
    </Triggers>
</asp:UpdatePanel>
<asp:Button ID="hiddenAsyncTrigger" runat="server" OnClick="LoadUpdatePanels" Text="Button" />
<asp:XmlDataSource ID="xmlDS" runat="server" CacheDuration="1" XPath="//something"></asp:XmlDataSource>

这些行似乎有问题:

 File "path", line 43, in <module>
     rb = ds.GetRasterBand(1) 
AttributeError: 'NoneType' object has no attribute 'GetRasterBand'

有人知道我做错了吗?

编辑

一些魔术刚发生。今天早上我试图运行我的代码,一切似乎都很好。我猜我的电脑需要重启或什么。谢谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

from the gdal documentation:

from osgeo import gdal
dataset = gdal.Open(filename, gdal.GA_ReadOnly)
if not dataset:
    ...
  

请注意,如果GDALOpen()返回NULL,则表示打开失败,并且   通过CPLError()已经发出了错误消息。   如果您想控制将错误报告给用户的方式,请查看   CPLError()文档。一般而言,GDAL的所有用途   CPLError()用于错误报告。另外,请注意pszFilename不需要   实际上是物理文件的名称(尽管通常是)。它的   解释取决于驱动程序,并且可能是URL,文件名   最后添加其他参数来控制打开或关闭   几乎所有的东西。请尝试不限制GDAL文件选择对话框   只选择物理文件。


看起来像您要打开的文件不是有效的gdal文件,或者文件选择中出现了其他魔术。您可以尝试将程序定向到在线的已知有效文件中进行测试。