无法在Spyder中导入模块,不知道如何使用sys.path

时间:2017-08-19 23:27:40

标签: python import module spyder

上下文:在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命令行或我的计算机命令行?

1 个答案:

答案 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 或搜索路径执行任何操作。