ImportError: No module named temperature from the terminal
ImportError: No module named temperature from the terminal
我安装了 miniconda 并且 运行 在不同的环境中安装了各种版本的 python。我创建了一个 temperature.py 文件并将其保存在我的根目录中名为 python 的文件夹中:/Users/name
当我在终端上输入 python 然后 运行 import temperature.py from我收到此错误的终端:
ImportError: 没有名为 'temperature'
的模块
我应该在哪里保存 temperature.py 文件?
Copy/move temperature.py
进入您当前的工作目录。
你可以从Python提示中找到这个目录:
>>> import os
>>> os.getcwd()
temperature.py
文件需要 Python 可以找到。 Python 在 sys.path
:
中查找可导入的包
>>> import sys
>>> print(sys.path)
['', ...]
您可以:
(1) 将 temperature.py
文件添加到 sys.path
上的目录(第一项是空字符串,因此您当前的工作目录将始终有效)。
(2)动态添加目录(习惯添加在最前面)
import sys
sys.path.insert(0, path-to-directory-containing-temperature.py)
(3)将目录添加到PYTHONPATH
环境变量中。
(4) 创建一个包并安装它(如果您正在开发它,则在开发模式下):
(dev) go|c:\srv\tmp\temp> cat temperature.py
def get_temp():
print 42
添加一个非常简约的 setup.py 文件:
(dev) go|c:\srv\tmp\temp> cat setup.py
from setuptools import setup
setup(
name='temp',
py_modules=['temperature']
)
在开发模式下安装
c:\srv\tmp\temp> python setup.py develop
running develop
running egg_info
...
Creating c:\python27\lib\site-packages\temp.egg-link (link to .)
Adding temp 0.0.0 to easy-install.pth file
Installed c:\srv\tmp\temp
Processing dependencies for temp==0.0.0
Finished processing dependencies for temp==0.0.0
现在您可以从任何地方导入它(请注意,我从一个完全不同的目录开始):
c:\> python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import temperature
>>> temperature.get_temp()
42
当你刚开始的时候,我会选择(1)或(3),过一段时间(4)将是最好的选择..
首先 Python 查找要导入的模块是工作目录(即如果您将脚本传递给 python 的目录)或者如果您刚刚启动 python没有脚本,您打开时所在的目录 python。未能在那里找到它,它使用 PYTHONPATH 变量,如果在那里也没有找到,它使用在 Python.
安装中指定的路径
在运行时,您可以检查 sys.path 它正在查找的实际路径。
import sys
print(sys.path)
如果需要,您甚至可以修改 sys.path
。添加到开头,因为这是导入首先查找的地方:
import sys
sys.path.insert(0, <path_of_temperature.py>)
来源https://docs.python.org/3/tutorial/modules.html
6.1.2。模块搜索路径
当导入名为spam 的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,它会在变量 sys.path 给出的目录列表中搜索名为 spam.py 的文件。 sys.path 从这些位置初始化:
- 包含输入脚本的目录(或当前目录
当没有指定文件时)。
- PYTHONPATH(目录名称列表,语法与 shell 变量 PATH 相同)。
- 依赖于安装的默认值。
我安装了 miniconda 并且 运行 在不同的环境中安装了各种版本的 python。我创建了一个 temperature.py 文件并将其保存在我的根目录中名为 python 的文件夹中:/Users/name
当我在终端上输入 python 然后 运行 import temperature.py from我收到此错误的终端:
ImportError: 没有名为 'temperature'
的模块我应该在哪里保存 temperature.py 文件?
Copy/move temperature.py
进入您当前的工作目录。
你可以从Python提示中找到这个目录:
>>> import os
>>> os.getcwd()
temperature.py
文件需要 Python 可以找到。 Python 在 sys.path
:
>>> import sys
>>> print(sys.path)
['', ...]
您可以:
(1) 将 temperature.py
文件添加到 sys.path
上的目录(第一项是空字符串,因此您当前的工作目录将始终有效)。
(2)动态添加目录(习惯添加在最前面)
import sys
sys.path.insert(0, path-to-directory-containing-temperature.py)
(3)将目录添加到PYTHONPATH
环境变量中。
(4) 创建一个包并安装它(如果您正在开发它,则在开发模式下):
(dev) go|c:\srv\tmp\temp> cat temperature.py
def get_temp():
print 42
添加一个非常简约的 setup.py 文件:
(dev) go|c:\srv\tmp\temp> cat setup.py
from setuptools import setup
setup(
name='temp',
py_modules=['temperature']
)
在开发模式下安装
c:\srv\tmp\temp> python setup.py develop
running develop
running egg_info
...
Creating c:\python27\lib\site-packages\temp.egg-link (link to .)
Adding temp 0.0.0 to easy-install.pth file
Installed c:\srv\tmp\temp
Processing dependencies for temp==0.0.0
Finished processing dependencies for temp==0.0.0
现在您可以从任何地方导入它(请注意,我从一个完全不同的目录开始):
c:\> python
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import temperature
>>> temperature.get_temp()
42
当你刚开始的时候,我会选择(1)或(3),过一段时间(4)将是最好的选择..
首先 Python 查找要导入的模块是工作目录(即如果您将脚本传递给 python 的目录)或者如果您刚刚启动 python没有脚本,您打开时所在的目录 python。未能在那里找到它,它使用 PYTHONPATH 变量,如果在那里也没有找到,它使用在 Python.
安装中指定的路径在运行时,您可以检查 sys.path 它正在查找的实际路径。
import sys
print(sys.path)
如果需要,您甚至可以修改 sys.path
。添加到开头,因为这是导入首先查找的地方:
import sys
sys.path.insert(0, <path_of_temperature.py>)
来源https://docs.python.org/3/tutorial/modules.html
6.1.2。模块搜索路径
当导入名为spam 的模块时,解释器首先搜索具有该名称的内置模块。如果未找到,它会在变量 sys.path 给出的目录列表中搜索名为 spam.py 的文件。 sys.path 从这些位置初始化:
- 包含输入脚本的目录(或当前目录 当没有指定文件时)。
- PYTHONPATH(目录名称列表,语法与 shell 变量 PATH 相同)。
- 依赖于安装的默认值。