我很难找到一个清楚地解释如何导入python模块而没有错误的网站。我在名为coffee_shop.py
的目录中有一个名为~/Desktop/programming_feb_23_v
的文件。
当我尝试运行它时,我会从googlemaps包中获取python导入错误。我直接下载了软件包“googlemaps-2.1.1.tar.gz” - 我将其解压缩并将googlemaps目录直接放在与scrape_google.py
程序相同的目录中(以及作为子项出现的所有其他目录) googlemaps-2.1.1的目录。
当我尝试重新运行python时,我得到“请求”模块未找到错误。然后我尝试下载请求模块,并将其放在与__init__.py
相同的文件夹中,用于googlemaps。它似乎仍然认为我没有请求文件,即使我有该目录并且其中有一个__init__.py
文件,我在尝试运行该文件时仍然有问题。
有更聪明的方法吗?我正在阅读Python路径,但仍不完全确定这意味着什么。作为参考,我打印了sys.path
。我想知道是否有一种方法可以将我所有的python包放在一个地方(一个lib?)而不必每次我想运行它们时手动下载包。
可行的问题: - 如何设置我的导入,以便我可以(1)运行此程序,(2)不必每次都手动下载它们?
其他Notes =我正在运行Python 2.7
编辑 - 尝试安装虚拟环境但仍然无法运行程序,即使它已经安装了。
编辑v2 -
编辑v3:仍然无法让GoogleMaps项目投入使用
编辑v4:从头开始,按照http://docs.python-guide.org/en/latest/dev/virtualenvs/
的指示,使用venv
答案 0 :(得分:1)
我打算建议你肯定得到virtualenv并在每个项目中使用它。在ubuntu上,您可以使用
轻松加载它sudo apt-get install python-virtualenv
遗憾的是,这会给你一个稍微过时的版本。要解决这个问题,您只需升级即可。
sudo pip install --update virtualenv pip setuptools
完成后,为自己创建一个虚拟环境文件夹。我喜欢将我保留在~/Python
中,这允许我使用我的workon别名来激活虚拟环境。
因此,让我们在上面的步骤之后继续前进。
$ mkdir ~/Python
这将为您创建一个存储所有虚拟环境的位置。然后,这些是每次启动新项目时将运行的命令
$ cd ~/Python
$ mkdir projectname
$ cd projectname
$ virtualenv .projectname
我喜欢将我的virtualenvs放在一个隐藏文件夹中,因为我很少直接与他们互动。既然你有virtualenv,你需要激活它以便你可以使用它。每次使用时都需要激活virtualenv。 (注意一旦激活提示如何改变)
$ . .projectname/bin/activate
(.projectname) $ |
注意上面命令的语法有点奇怪。的。告诉bash读取以下脚本,好像它是在命令提示符下输入的,如果你想让虚拟环境真正起作用,那就非常重要了。
现在,当你需要一个可导入的python包时,你就可以了
(.projectname) $ pip install packagename
在您的代码中,您可以
import packagename
没有任何问题。如果你想要一个workon别名的副本,请告诉我,我会在这里发布。
我认为你试图导入错误的东西。这是我导入googlemaps时获得的内容。特别注意googlemaps的情况
$ .foo/bin/activate
$ . .foo/bin/activate
(.foo)/tmp$ pip install googlemaps
Collecting googlemaps
Downloading googlemaps-2.1.1-py2-none-any.whl
Collecting requests (from googlemaps)
Downloading requests-2.5.2-py2.py3-none-any.whl (474kB)
100% |################################| 475kB 422kB/s
Installing collected packages: requests, googlemaps
Successfully installed googlemaps-2.1.1 requests-2.5.2
(.foo)/tmp$ python
Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import googlemaps
>>>
答案 1 :(得分:0)
听起来您的全局site-packages
文件夹不在您的路径上。 This answer可以帮助您查看site-packages
的位置,并通过在终端提示符下键入echo $PATH
来查看路径中的内容。如果他们不在您的路径上,您可以通过搜索$PATH
变量以及如何在.bashrc
,.bash_profile
或{{1}中设置/更新变量来解决此问题。用户主目录中的文件。
更好的方法是使用类似virtualenv
之类的东西,这样你就可以在每个项目的基础上管理你的Python依赖项,而不是摔跤全局依赖项不匹配,如果你需要一个版本的{ {1}}用于一个项目,另一个版本用于单独的项目...如果您尝试管理全局包,则会变得毛茸茸。
安装.profile
后快速入门(而不是唯一的方法):
requests
virtualenv
。这会将您从全局virtualenv env
切换到. env/bin/activate
python
env/
依赖项pip install