Python路径困惑: can import directory but not files?

标签 python

我正在努力解决 Python 路径问题。我希望能够从目录导入文件。当它可以从文件系统中获取时,我可以执行此操作,但当我依靠 PATH(更新:或 PYTHONPATH)来查找它时,则不能执行此操作。

这是症状。首先,检查我的当前目录是否在我的 PATH 中:

(.venv)~/Dropbox/gds/myapp $ pwd
/Users/me/Dropbox/gds/myapp
(.venv)~/Dropbox/gds/myapp $ echo $PATH
... :/usr/local/go/bin:.:/Users/me/Dropbox/gds/myapp

并检查 test/test_app 是否在我认为的位置(并且目录中有一个 __init__.py:

(.venv)~/Dropbox/gds/myapp $ ls tests/
__init__.py __pycache__ test_app.py test_views.py

现在检查 Python 是否可以从此目录导入 test/test_app:

(.venv)~/Dropbox/gds/myapp $ python
Python 3.4.2 (default, Jan 29 2015, 13:46:46)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tests
>>> import tests.test_app
>>> exit()

到目前为止一切都很好。现在移动到另一个目录,看看是否可以导入 test/test_app:

(.venv)~/Dropbox/gds/myapp $ cd ..
(.venv)~/Dropbox/gds $ python
Python 3.4.2 (default, Jan 29 2015, 13:46:46)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tests
>>> import tests.test_app
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'tests.test_app'

但是 /Users/me/Dropbox/gds/myapp 在我的 PATH 中,并且我可以导入该目录,那么为什么我不能导入该文件?

更新:

感谢您的建议。刚刚尝试执行 export PYTHONPATH=$PYTHONPATH:/Users/me/Dropbox/gds/myapp: 但当我运行 Python 时仍然遇到同样的问题。

最佳答案

该目录需要位于 PYTHONPATH 中,而不是 PATH (用于常规非 Python 命令查找)。

关于Python路径困惑: can import directory but not files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28237762/

相关文章:

python - 如何找到组内值之间的最小差异

python - 如何解除pycharm文件中的锁定?

python - 以编程方式编辑谷歌文档

python - Google bigquery python 客户端库 SQL 选择正则表达式错误

python - 上传大文件不起作用 - Google Drive Python API

python - 为一个范围组合系数?

python - 在 Python 2 中比较时间

python - 如何将多个python脚本混合成一个shell脚本?

java - Python 相当于 java.io.File

python - Keras 预测形状不正确?