在Python中导入PIL(枕头)模块

时间:2018-10-06 13:23:18

标签: python python-3.x

为什么我能在Python 3.7中做到这一点?

<div id='main'>
  <table id='table1'>
    <thead>
      <tr>
        <th>Brand</th>
        <th>Country</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>BMW</td>
        <td>Germany</td>
      </tr>
      <tr>
        <td>Audi</td>
        <td>Italy</td>
      </tr>
    </tbody>
  </table>
  <div id='content'>
     <h1> This website is awesome!</h1>
     <p>
     Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sit delectus quisquam libero ex sint repellendus officiis quasi nostrum perferendis, iste corrupti quod totam numquam recusandae amet, vel ab reiciendis dolorem!
     </p>
     <p>
     Lorem ipsum dolor sit amet, consectetur adipisicing elit. Unde consectetur fugit eum totam, corrupti amet minima placeat aliquid. Culpa dolore ut aliquam sed eveniet id corporis fuga molestias perspiciatis repellat.
     </p>
  </div>
  <table id='table2'>
  <thead>
      <tr>
        <th>Brand</th>
        <th>Country</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>Dodge</td>
        <td>USA</td>
      </tr>
      <tr>
        <td>Kia</td>
        <td>S. Korea</td>
      </tr>
    </tbody>
  </table>
</div>

但是不是,我知道这是同一件事:

div#main {
  background-color: pink;
  display: flex;
}

table {
  display: inline-block;
  background-color: aqua;
  border: 1px solid black;
  margin-left: 5px;
  margin-right: 5px;
  border-collapse: collapse;
}

td {
  border: 1px solid black;
  height: 100%;
}
div#content {
  display: inline-block;
  background-color: beige;
  padding: 0 10px;
}

h1 {
  margin: 0;
}

后者给出结果:

from PIL import Image
im = Image.open("hardcastle-crags-3462894.jpg")

我已经理解这些是同一回事。为什么一个起作用而另一个不起作用?

1 个答案:

答案 0 :(得分:2)

回答我自己的问题(现在我已经明白了)。

在Python中,您可以导入:

  1. 模块-单个文件,例如something.py;或
  2. packages-包含一个或多个.py文件的目录,并且始终包含一个名为__init__.py的文件,该文件将目录指定为软件包。

在这种情况下,语句:

import PIL

与说“ 将__init__.py文件导入PIL目录”实际上是一样的。在这种特定情况下,该__init__.py文件不会导入或以其他方式使称为“ Image”的任何类或其他模块可用,因此我在初始导入后在示例2中对它的后续引用失败。

相反,该语句:

from PIL import Image

的解释有些不同。这与说“ 在软件包目录PIL中查找名为Image的模块并将其导入”完全相同。

因此您可以看到import语句实际上与上下文有关。在不同情况下,它可能意味着不同的事物。

This是出色的资源,它解释了import语句根据上下文起作用的不同方式。