上下文:在Windows 10上使用Spyder,学习Python不到3个月。
在过去的几周里,我一直在和Python Crash Course一起巡航,并且到了我应该导入模块的部分。我创建了一个名为car.py的模块,并尝试将其导入名为my_car.py的文件中。
书中说导入模块进入:
from car import car
哪个不起作用。
import car
也不起作用
我得到cannot import name 'car'
或name 'Car' is not defined
。
也尝试了这个......
Export PYTHONPATH ="${PYTHONPATH}:\Users\Alex\Documents\Python_scripts\Py_Crash\Classes\Inheritance "
我已经查看了堆栈溢出,并花了几个小时试图解决它,但我很困惑该怎么做。以下是我在Stackoverflow上发现的相似内容:
将环境变量PYTHONPATH设置为以冒号分隔的列表 用于搜索导入模块的目录。在你的程序中,使用 sys.path.append(' / path / to / search')添加您的目录名称 希望Python搜索导入的模块。 sys.path只是列表 每次被要求导入时,Python搜索目录 模块,你可以根据需要改变它(虽然我不推荐 删除任何标准目录!)。你输入的任何目录 环境变量PYTHONPATH将插入到sys.path中 当Python启动时。使用site.addsitedir添加目录 sys.path中。这与简单的追加之间的区别在于 当你使用addsitedir时,它也会在其中查找.pth文件 目录并使用它们可能添加其他目录 sys.path基于文件的内容。请参阅文档 更多细节。
#my_car.py
"""
os.path.join("foo", "bar", "baz")
'foo/bar/baz'
os.path.split(_)
('foo/bar', 'baz')
from car import car
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading = 23
my_new_car.read_odometer()
#car.py
"""A class that can be used to represent a car"""
class Car():
"""A simple attempt to represent a car"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
print("This car has " + str(self.odomter_reading) + "miles on it.")
def update_odometer(self, mileage):
if mileage >= self.odomoter_reading:
self.odometer_reading = mileage
else:
print("You can't roll back an odomter!")
def increment_odomter(self, miles):
self.odomoter_reading += miles
我想我对应该设置新路径的位置以及实际输入的内容感到困惑。我可以使用spyder来执行此操作,还是需要使用python命令行或我的计算机命令行?
答案 0 :(得分:0)
从另一个module导入名称的语法只有以下形式:
react-native
例如
from <name of .py file without the extension> import <case-sensitive name of variable you want to import from that file>
当他们在同一目录中时,您不需要对from car import Car
或搜索路径执行任何操作。