相关疑难解决方法(0)

在全球网站包中安装pip而不是virtualenv

使用pip在virtualenv中安装软件包会导致软件包安装在全局site-packages文件夹中,而不是virtualenv文件夹中的软件包.以下是我在OS X Mavericks(10.9.1)上设置Python3和virtualenv的方法:

我使用Homebrew安装了python3:

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl
Run Code Online (Sandbox Code Playgroud)

更改了pip3.bash_profile中的变量; 添加以下行:

export PATH=/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

运行virtualenv返回$PATH(重启shell后).

注意:.bash_profile仍然会返回/ which python3.

使用pip3安装virtualenv:

pip3 install virtualenv
Run Code Online (Sandbox Code Playgroud)

接下来,创建一个新的virtualenv并激活它:

virtualenv testpy3 -p python3
cd testpy3
source bin/activate
Run Code Online (Sandbox Code Playgroud)

注意:如果我没有指定-p python3,那么virtualenv中的bin文件夹中将缺少pip.

运行/usr/local/bin/python3which python3返回virtualenv文件夹:

/Users/kristof/VirtualEnvs/testpy3/bin/pip3
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试在激活的virtualenv中使用pip安装例如Markdown时,pip将安装在全局site-packages文件夹中,而不是virtualenv的site-packages文件夹中.

pip install markdown
Run Code Online (Sandbox Code Playgroud)

运行usr/bin/python回报:

Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)
Run Code Online (Sandbox Code Playgroud)

内容virtualenv:

__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/
Run Code Online (Sandbox Code Playgroud)

内容pip3 …

python macos pip virtualenv

84
推荐指数
8
解决办法
8万
查看次数

在Crontab上执行python脚本

我正在尝试使用linux crontab执行python脚本,但我找到了很多解决方案,但没有一个能够正常工作.例如:在/etc/cron.d编辑anacron或使用crontab -e.

我想每10分钟运行一次这个脚本.

我必须编辑哪个文件来配置它?

提前致谢

编辑

我把这一行放在文件的末尾,但它不会改变任何东西.我必须重新启动任何服务吗?

*/2 * * * * /usr/bin/python /home/souza/Documets/Listener/listener.py
Run Code Online (Sandbox Code Playgroud)

编辑[2]

伙计们,我已经遵循了源代码.这里可能有问题,但是当我手动执行它时,它可以工作:

http://pastebin.com/qsWHNzqT

python linux cron

80
推荐指数
3
解决办法
23万
查看次数

crontab中的变量?

如何在我的crontab中存储变量?我知道它不是shell但是我想要一些常量,比如我的应用程序的路径或其他东西?

思考?

cron

50
推荐指数
4
解决办法
5万
查看次数

Python urllib3 错误 - 导入错误:无法导入名称 UnrewindableBodyError

我设置我的 cronjob 在特定时间调用我的脚本(ex- 2 4 5 10 * python3 mayank/exp/test.py)。当我的test.py被调用时,我将在我的 test.py 脚本中激活 virtualenv,如下所示。

activate = "/home/myserver/schedule_py3/bin/activate_this.py"
exec(open(activate).read())
Run Code Online (Sandbox Code Playgroud)

激活虚拟环境(其中包含 python3 和运行脚本所需的包)后,我尝试导入请求,它显示的错误为:-

File "schedule_module/Schedule/notification_task.py", line 2, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 43, in <module>
    import urllib3
  File "/usr/lib/python2.7/site-packages/urllib3/__init__.py", line 10, in <module>
    from .connectionpool import (
  File "/usr/lib/python2.7/site-packages/urllib3/connectionpool.py", line 31, in <module>
    from .connection import (
  File "/usr/lib/python2.7/site-packages/urllib3/connection.py", line 45, in <module>
    from .util.ssl_ import (
  File "/usr/lib/python2.7/site-packages/urllib3/util/__init__.py", line 4, in <module>
    from .request …
Run Code Online (Sandbox Code Playgroud)

python urllib3 python-2.7 python-3.x python-requests

12
推荐指数
2
解决办法
2万
查看次数

如何使用 python 虚拟环境运行 cronjob?

通常我通过 SSH 连接到我的 EC2 实例并运行:

source MYVENV/bin/activate

如何设置我的 cronjob 以激活虚拟环境?我的 Django 脚本需要存储在 ~/.bash_profile 中的环境变量

我尝试按照此处的步骤操作无济于事

Cron 和 virtualenv

SHELL=/bin/bash
*/1 * * * * root source /home/ec2-user/MYVENV/activate && python /home/script.py
Run Code Online (Sandbox Code Playgroud)

这是我上面的当前设置。

我在日志中收到以下错误:

/bin/bash: root: 找不到命令

python cron virtualenv

8
推荐指数
2
解决办法
4934
查看次数

Django管理命令在cron中不起作用

我在manage.py celery call myapp.tasks.mytask使用我的用户crontab 调度时遇到问题,因为当cron尝试运行该作业时,它会在stderr中获取此信息(将其邮寄给我,如/var/mail/kal)

Unknown command: 'celery'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud)

相同的命令完全来自常规的bash登录shell,但它在crontab中不起作用.

我在Debian上这样做:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 7.0 (wheezy)
Release:        7.0
Codename:       wheezy
Run Code Online (Sandbox Code Playgroud)

我已经在StackOverflow上阅读了许多类似的问题,并尝试了许多建议的解决方案.到目前为止,他们都没有为我工作过.以下是我到目前为止尝试过的解决方案:

首先,我确保在crontab中指定相关的环境变量:

SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Run Code Online (Sandbox Code Playgroud)

注意:这些在以下所有解决方案中都保持不变.

1.使用python可执行文件和manage.py脚本的完整路径

* * * * * /home/kal/.virtualenvs/foo_dev/bin/python /home/kal/foo/manage.py celery call myapp.tasks.mytask
Run Code Online (Sandbox Code Playgroud)

2.首先进入项目路径

* * * * * cd /home/kal/foo && /home/kal/.virtualenvs/foo_dev/bin/python ./manage.py celery call myapp.tasks.mytask
Run Code Online (Sandbox Code Playgroud)

3.在bash脚本中包装所有内容

〜/ mytask.sh的内容:

#!/usr/bin/env bash
source /home/kal/.virtualenvs/foo_dev/bin/activate;
cd /home/kal/foo;
./manage.py celery …
Run Code Online (Sandbox Code Playgroud)

python django cron

5
推荐指数
1
解决办法
1926
查看次数