更新指向包含 space 的保管箱目录的 PYTHONPATH 变量

Updating PYTHONPATH variable pointing to a dropbox directory containing a space

我正在尝试导入我编写的 python 模块,该模块包含在路径包含 space 的 Dropbox 文件夹中。根据评论 here,我不想每次使用 python 时都执行 sys.path.append(path_to_repository),我宁愿只更新我的 bash 配置文件指向正确的 Dropbox 文件夹一次。

我尝试通过将以下行附加到我的 ~/.bash_profile:

来调整上一页的代码
PYTHONPATH ="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"
export ${PYTHONPATH}

当我关闭终端 window 并重新打开时,我收到以下错误消息:

-bash: PYTHONPATH: command not found
-bash: export: `/Users/myusername/Dropbox': not a valid identifier
-bash: export: `(projectname)/REPOSITORY_NAME': not a valid identifier

并且(不足为奇)当我尝试从 python 中的存储库导入时,我发现找不到模块:

>>> from REPOSITORY_NAME import myfile
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named REPOSITORY_NAME

有人有解决办法吗? 一些 questions/possibilities 我在想 -

1)和我的Anaconda配置有关系吗? (Anaconda 在虚拟环境中运行)

2) 与Dropbox安装python代码的文件夹有关系吗?

3) 难道是 pythonpath 中的 space 没有被正确解释?

4) 这是同步到 github 和 bitbucket 的同一个目录有什么问题吗?

在此先感谢您的帮助。

*编辑:

解决方案似乎是 1) 删除第一行中多余的 space 和 2) 在第二行中将 ${PYTHONPATH} 替换为 PYTHONPATH,即调整 ~/.bash_profile 具有以下行:

PYTHONPATH="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"
export PYTHONPATH

是啊,你在导出的时候在=前面加了一个spacePYTHONPATH:

PYTHONPATH ="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"

应该是:

PYTHONPATH="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"

前段时间我遇到了类似的问题。错误消息表明问题出在目录路径中的 space - bash_profile 被 space 截断并将路径拆分为 2。它可能是bash 处理 space 的方式有问题,但我不是 100% 确定。

这是一个对我有用的解决方案:

export PYTHONPATH="/Users/myusername/Dropbox (projectname)/REPOSITORY_NAME"

和你的差不多,只是export和PYTHONPATH在同一行。我认为这不会干扰 Dropbox、Github、Bitbucket、Anaconda(或任何其他 virtualenv,如 Enthought)等,只要你在每个目录中都有一个 _init__.py' 文件有你的 .py 文件。

希望对您有所帮助